溫馨提示×

LNMP在Debian上的資源分配

小樊
35
2025-08-19 22:40:29
欄目: 智能運維

在Debian上部署LNMP(Linux+Nginx+MySQL/MariaDB+PHP)時,資源分配需從系統配置、服務參數及硬件層面綜合優化,以下是關鍵要點:

一、系統級資源分配

  1. 文件描述符限制
    • 通過ulimit -n 65535提升Nginx/PHP-FPM的文件句柄上限,避免高并發時連接中斷。
    • 修改/etc/security/limits.conf永久生效:
      * soft nofile 65535
      * hard nofile 65535
      
  2. 內核參數調優
    • 優化網絡性能:
      sysctl -w net.core.somaxconn=65535
      sysctl -w net.ipv4.tcp_fin_timeout=30
      sysctl -w net.ipv4.tcp_fastopen=3
      
    • 減少磁盤交換:設置vm.swappiness=10(/etc/sysctl.conf),優先使用物理內存。

二、Nginx資源分配

  1. 進程與連接優化
    • worker_processes:設置為CPU核心數(grep -c ^processor /proc/cpuinfo),提升并發處理能力。
    • worker_connections:單進程最大連接數,建議設置為1024-4096,配合use epoll提升I/O效率。
  2. 靜態資源緩存
    • 啟用gzip壓縮(gzip on)減少傳輸體積,靜態文件(如圖片、CSS)設置expires緩存頭(如expires 30d)。

三、MySQL/MariaDB資源分配

  1. 內存與連接管理
    • innodb_buffer_pool_size:設置為服務器物理內存的50%-80%,用于緩存數據提升查詢效率。
    • max_connections:根據應用并發量調整(建議≤1000),避免連接數耗盡。
  2. 查詢優化
    • 啟用慢查詢日志(slow_query_log=1),定期分析并優化低效SQL。
    • 為高頻查詢字段添加索引,避免全表掃描。

四、PHP資源分配

  1. PHP-FPM參數優化
    • pm.max_children:根據服務器內存計算(建議內存/單個PHP進程占用內存,如512MB內存設為10-20),避免進程過多導致資源爭搶。
    • 啟用opcache:緩存PHP字節碼,減少重復編譯開銷,參數示例:
      opcache.enable=1
      opcache.memory_consumption=128
      opcache.max_accelerated_files=10000
      
  2. 代碼層面優化
    • 避免冗余數據庫查詢,使用緩存(如Redis)存儲熱點數據。

五、硬件與監控建議

  • 優先使用SSD:提升數據庫讀寫速度,尤其適合高并發場景。
  • 監控工具:通過top、htop、vmstat實時監控CPU/內存使用,或使用Prometheus+Grafana構建可視化監控體系。

參考來源

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女