在完成一些服务器配置后,我决定使用以下方法进行压力测试:围城。
lxc 容器中的 2 个前端服务器,在主机上平衡 nginx 的负载。 (如果需要,我稍后会添加 nginx 和 sysctl 配置)
主机-OVH上的专用服务器:
Intel Xeon E5
2x E5-2630v3 2.4 GHz (32 cores at all)
128 GB of RAM DDR3
2x 480GB SSD (RAID 1)
容器的一些参数:
8 cores, 8192 cpu units per core
8 GB RAM
在 lxc 容器中 - php + static(图像、css、js)。未来的负载将集中在静态内容输出上。测试是在包含 js、css 和图像的静态页面上进行的。
总的来说,测试结果不同,并且行为奇怪:
siege http://example.com/some_url -r50 -c250
测试 #1:
Transactions: 12451 hits
Availability: 99.61 %
Elapsed time: 36.84 secs
Data transferred: 80.52 MB
Response time: 0.06 secs
Transaction rate: 337.98 trans/sec
Throughput: 2.19 MB/sec
Concurrency: 21.43
Successful transactions: 12451
Failed transactions: 49
Longest transaction: 1.18
Shortest transaction: 0.04
测试#2,相同参数
Transactions: 12152 hits
Availability: 97.22 %
Elapsed time: 200.90 secs
Data transferred: 29.16 MB
Response time: 1.15 secs
Transaction rate: 60.49 trans/sec
Throughput: 0.15 MB/sec
Concurrency: 69.67
Successful transactions: 12152
Failed transactions: 348
Longest transaction: 63.40
Shortest transaction: 0.16
第一种情况下,性能良好,但第二种情况下,有时会出现更糟糕的奇怪行为,即:
测试开始时,每个容器的 CPU 负载约为 50%,但负载随着时间的推移而减少,响应时间增加,出现连接超时。然后速度增加,在测试结束前出现这些“波动”。测试期间,top/htop、磁盘 I/O 或服务器日志中没有异常。提前感谢您的建议;)