溫馨提示×

centos nginx內存占用高怎么辦

小樊
48
2025-08-08 13:31:19
欄目: 智能運維

一、優化Nginx配置

  • 調整進程與連接數
    • worker_processes auto;(按CPU核心數自動設置)。
    • worker_connections 1024;(單進程最大連接數,根據內存調整)。
  • 優化緩沖區
    • 減小 client_body_buffer_size(默認8k,可設為4k-16k)。
    • 限制 client_max_body_size(如10m,避免大文件占用內存)。
  • 啟用高效傳輸
    • sendfile on; tcp_nopush on;(減少內存拷貝)。
  • 限制超時與長連接
    • keepalive_timeout 30s; keepalive_requests 100;。

二、操作系統級優化

  • 調整內核參數
    • 編輯 /etc/sysctl.conf,添加:
      net.ipv4.tcp_tw_reuse = 1(重用TIME_WAIT連接)。
      vm.swappiness = 10(減少交換分區使用)。
    • 執行 sysctl -p 生效。
  • 清理緩存
    • 手動釋放緩存:sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches。

三、監控與維護

  • 定位內存占用
    • 使用 tophtop 查看內存占用高的進程,確認是否為Nginx。
    • 通過 pmap <nginx_pid> 分析Nginx進程內存分布。
  • 定期重啟服務
    • 通過cron定時重啟Nginx釋放內存(如每天凌晨)。
  • 更新軟件版本
    • 升級Nginx到最新穩定版,修復已知內存問題。

四、其他措施

  • 禁用不必要模塊
    移除未使用的第三方模塊,減少內存占用。
  • 啟用靜態文件緩存
    expires 指令緩存靜態資源,減少后端請求。

參考來源


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