在進行性能測試前,需確保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上的性能表現,并通過迭代優化提升系統穩定性與吞吐量。