benchmark_no_pipeline_redis.sh 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. echo "๐Ÿ”ด Redis No-Pipeline Benchmark Suite"
  3. echo "======================================"
  4. echo ""
  5. # Check if Redis is running on default port
  6. if nc -z localhost 6379 2>/dev/null; then
  7. echo "โš ๏ธ Redis already running on port 6379"
  8. echo "Stopping existing Redis server..."
  9. redis-cli shutdown 2>/dev/null
  10. sleep 1
  11. fi
  12. # Clean up old AOF files
  13. rm -f appendonly.aof*
  14. # Start fresh Redis instance with AOF persistence
  15. echo "๐Ÿ—‘๏ธ Starting fresh Redis server with AOF persistence..."
  16. redis-server --port 6379 --save "" --appendonly yes --appendfsync everysec &
  17. REDIS_PID=$!
  18. sleep 2
  19. echo ""
  20. echo "๐Ÿ“Š Running No-Pipeline Benchmark Tests on Redis..."
  21. echo ""
  22. # Test 1: Small writes without pipelining
  23. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  24. echo "Test 1: Small Writes (100k, 256 bytes, P=1)"
  25. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  26. redis-benchmark -h localhost -p 6379 -t SET -n 100000 -c 50 --threads 4 -r 100000 -P 1 -d 256 --csv
  27. echo ""
  28. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  29. echo "Test 2: Small Reads (100k, P=1)"
  30. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  31. redis-benchmark -h localhost -p 6379 -t GET -n 100000 -c 50 --threads 4 -r 100000 -P 1 --csv
  32. echo ""
  33. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  34. echo "Test 3: Medium Writes (50k, 1KB, P=1)"
  35. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  36. redis-benchmark -h localhost -p 6379 -t SET -n 50000 -c 50 --threads 4 -r 50000 -P 1 -d 1024 --csv
  37. echo ""
  38. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  39. echo "Test 4: Medium Reads (50k, 1KB, P=1)"
  40. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  41. redis-benchmark -h localhost -p 6379 -t GET -n 50000 -c 50 --threads 4 -r 50000 -P 1 --csv
  42. echo ""
  43. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  44. echo "Test 5: Large Writes (10k, 10KB, P=1)"
  45. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  46. redis-benchmark -h localhost -p 6379 -t SET -n 10000 -c 25 --threads 2 -r 10000 -P 1 -d 10240 --csv
  47. echo ""
  48. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  49. echo "Test 6: Large Reads (10k, 10KB, P=1)"
  50. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  51. redis-benchmark -h localhost -p 6379 -t GET -n 10000 -c 25 --threads 2 -r 10000 -P 1 --csv
  52. echo ""
  53. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  54. echo "Test 7: Mixed Workload (50k each, P=1)"
  55. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  56. redis-benchmark -h localhost -p 6379 -t SET,GET -n 50000 -c 50 --threads 4 -r 100000 -P 1 --csv
  57. echo ""
  58. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  59. echo "Test 8: High Concurrency (100k, 100 clients, P=1)"
  60. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  61. redis-benchmark -h localhost -p 6379 -t GET -n 100000 -c 100 --threads 4 -r 100000 -P 1 --csv
  62. echo ""
  63. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  64. echo "Test 9: DELETE Performance (50k, P=1)"
  65. echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
  66. redis-benchmark -h localhost -p 6379 -t DEL -n 50000 -c 50 --threads 4 -r 100000 -P 1 --csv
  67. echo ""
  68. echo "โœ… Redis Benchmark Complete!"
  69. echo ""
  70. echo "Checking memory usage..."
  71. redis-cli INFO memory | grep used_memory_human
  72. echo ""
  73. echo "Checking AOF persistence files..."
  74. ls -lh appendonly.aof* 2>/dev/null || echo "AOF files managed by Redis"
  75. echo ""
  76. echo "Shutting down Redis..."
  77. redis-cli shutdown
  78. wait $REDIS_PID 2>/dev/null