LNMP(Linux + Nginx + MySQL + PHP)架构的性能测试需要从多个层面进行评估。以下是一套完整的LNMP性能测试方案:
测试方法:
# 使用ab测试静态文件
ab -n 10000 -c 100 http://yourdomain.com/test.html
# 使用wrk测试(更高性能)
wrk -t12 -c400 -d30s http://yourdomain.com
关键指标: - 每秒请求数(RPS/QPS) - 请求延迟(平均、最大、P95/P99) - 错误率 - 服务器资源占用(CPU、内存、网络)
测试方法:
# 测试PHP脚本
ab -n 5000 -c 100 http://yourdomain.com/test.php
# 调整PHP-FPM配置后测试
/etc/init.d/php-fpm restart
关键配置参数: - pm.max_children - pm.start_servers - pm.min_spare_servers - pm.max_spare_servers - pm.max_requests
使用sysbench测试:
# 准备测试数据
sysbench oltp_read_write --db-driver=mysql --mysql-host=localhost \
--mysql-port=3306 --mysql-user=root --mysql-password=yourpassword \
--mysql-db=sbtest --tables=10 --table-size=100000 prepare
# 运行测试
sysbench oltp_read_write --db-driver=mysql --mysql-host=localhost \
--mysql-port=3306 --mysql-user=root --mysql-password=yourpassword \
--mysql-db=sbtest --tables=10 --table-size=100000 \
--threads=16 --time=300 --report-interval=10 run
关键指标: - 每秒事务数(TPS) - 查询延迟 - 锁等待时间 - 缓存命中率
Nginx优化:
worker_processes auto;
worker_connections 10240;
keepalive_timeout 65;
gzip on;
PHP-FPM优化:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
MySQL优化:
innodb_buffer_pool_size = 4G
innodb_log_file_size = 256M
query_cache_size = 64M
max_connections = 200
通过以上全面的性能测试,您可以全面了解LNMP架构的性能表现,找出瓶颈并进行针对性优化,确保系统在高负载下稳定运行。