在进行性能测试前,需确保LNMP环境配置正确且稳定,避免因环境问题导致测试结果偏差。
sudo apt update && sudo apt install nginx安装,启动后设置开机自启(sudo systemctl enable --now nginx)。sudo apt install mysql-server安装,运行sudo mysql_secure_installation完成安全配置(如设置root密码、移除匿名用户等)。sudo apt install php php-fpm php-mysql安装,确保PHP与Nginx兼容(如Debian 11默认支持PHP 8.0+)。/etc/php/{version}/fpm/pool.d/www.conf,修改listen指令为unix:/var/run/php/php{version}-fpm.sock(与Nginx配置一致),重启服务(sudo systemctl restart php{version}-fpm)。/etc/nginx/sites-available/default的server块中添加PHP处理规则:location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php{version}-fpm.sock;
}
重启Nginx使配置生效。根据测试需求(并发量、吞吐量、复杂场景模拟)选择合适的工具:
通过工具模拟并发请求,评估服务器的基础性能(响应时间、吞吐量、错误率)。
sudo apt install apache2-utils),执行命令:ab -n 1000 -c 100 http://your_server_ip/info.php
参数说明:-n 1000(总请求数)、-c 100(并发数)、http://your_server_ip/info.php(测试URL)。sudo apt install wrk),执行命令:wrk -t12 -c400 -d30s http://your_server_ip/info.php
参数说明:-t12(线程数)、-c400(并发数)、-d30s(测试时长)。mysqlslap工具模拟数据库负载:mysqlslap --concurrency=50 --iterations=10 --query="SELECT * FROM your_table" --number-of-queries=1000
参数说明:--concurrency 50(并发数)、--iterations 10(循环次数)、--query(测试SQL)。测试过程中需实时监控系统资源使用情况,定位性能瓶颈(如CPU过载、内存不足、磁盘I/O瓶颈)。
top(查看CPU/内存占用)、htop(更直观的资源监控)、vmstat 1(查看系统整体状态,如上下文切换、IO等待)。iostat -x 1(查看磁盘读写速率、I/O等待时间)。stub_status模块(在nginx.conf中添加location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; }),访问http://localhost/nginx_status查看活跃连接数、请求处理速率。根据工具输出的指标和监控数据,识别性能瓶颈:
worker_connections过低)。worker_processes为CPU核心数)或MySQL查询瓶颈(优化SQL、启用索引)。pm.max_children)或磁盘空间不足。根据分析结果针对性优化,然后重复测试验证效果:
worker_processes(设为CPU核心数)、worker_connections(增加最大并发连接数,如worker_connections 65535)、启用gzip压缩(减少传输数据量)。opcache.enable=1)、调整pm.max_children(根据内存计算,如内存/单个PHP进程占用)、禁用不必要的扩展。innodb_buffer_pool_size(设为系统内存的50%-80%,用于缓存数据和索引)、优化慢查询(通过slow_query_log定位并优化)。ulimit -n 65535)、优化内核参数(如net.core.somaxconn设为65535,提高TCP连接队列长度)。通过以上流程,可全面评估LNMP在Debian上的性能表现,并通过迭代优化提升系统稳定性与吞吐量。