nginx性能優化與深度監控

一、性能調優方向

1. 系統層面優化

  • 內核參數調整
    • TCP隊列與連接管理
      • net.core.somaxconn(最大連接隊列長度,建議設為65535)
      • net.ipv4.tcp_max_syn_backlog(SYN隊列長度,建議65535)
      • net.ipv4.tcp_tw_reuse和tcp_tw_recycle(加速TIME_WAIT連接回收)57
    • 文件描述符限制
      • 修改/etc/security/limits.conf,設置nofile為65535以上,避免“Too many open files”錯誤57
    • 臨時端口范圍
      • 擴大net.ipv4.ip_local_port_range(如1024-65535),支持更多并發連接7
  • 硬件與架構優化
    • SSD存儲:提升靜態資源訪問速度5
    • CPU綁定:通過worker_cpu_affinity將Nginx工作進程綁定到特定CPU核心,減少上下文切換9

2. Nginx配置優化

  • 工作進程與連接數
    • worker_processes:設為CPU核心數(如auto自動檢測)13
    • worker_connections:每個進程最大連接數(如10240),需結合worker_rlimit_nofile調整13
  • 緩沖區與傳輸優化
    • client_body_buffer_size和client_header_buffer_size:調整請求體與頭緩沖區(如16k/4k),避免大請求導致的錯誤13
    • sendfile和tcp_nopush:啟用零拷貝傳輸,減少CPU消耗79
  • HTTP協議與SSL優化
    • 啟用HTTP/2協議:listen 443 ssl http215
    • SSL優化:使用TLS 1.3、高性能加密套件(如TLS_AES_128_GCM_SHA256),并開啟會話復用15
  • 緩存與壓縮
    • 靜態資源緩存:通過expires和Cache-Control頭設置瀏覽器緩存時間5
    • Gzip壓縮:減少傳輸體積,配置gzip_types包含文本、JSON、JS等格式59
    • 代理緩存:使用proxy_cache_path緩存后端響應,降低后端負載9
  • 負載均衡策略
    • 根據場景選擇算法:輪詢(默認)、最少連接(least_conn)、IP哈希(ip_hash)15

二、深度監控方案

1. 基礎監控指標

  • 核心活躍指標
    • Active connections(活躍連接數)、Reading/Writing(讀寫狀態連接數)。
    • Accepts(總接收連接數)、Handled(成功處理數)、Requests(總請求數)610
  • 性能指標
    • QPS(每秒請求數):通過Requests的增量計算610
    • 錯誤率:統計4xx(客戶端錯誤)和5xx(服務端錯誤)狀態碼占比610
    • 響應時間:通過日志中的$request_time分析平均處理耗時610

2. 監控工具與實現

  • Nginx內置模塊
    • stub_status模塊
      • 配置示例:

location /nginx_status {

??? stub_status on;

??? access_log off;

??? allow 127.0.0.1;

??? deny all;

}

      • 輸出示例:Active connections: 23 | Requests: 4550,可解析為每秒請求數、連接狀態等26
  • 日志分析
    • 訪問日志:記錄請求時間、狀態碼、響應時間,結合ELK(Elasticsearch+Logstash+Kibana)進行可視化分析28
    • 錯誤日志:監控error.log中的警告與錯誤事件(如連接超時、SSL握手失敗)6
  • 第三方監控系統
    • Prometheus+Grafana
      • 使用nginx_exporter采集指標,通過Grafana展示實時儀表盤(如QPS、連接數、錯誤率)48
    • Zabbix:自定義監控項,觸發告警(如連接數超閾值)68
  • 高級監控模塊
    • ngx_http_reqstat_module:第三方模塊,支持按域名、URL統計請求數、流量等,需重新編譯Nginx610

三、調優與監控實踐建議

  1. 逐步調優:每次僅修改一個參數,通過壓測(如wrk或ab)驗證效果7
  2. 監控頻率:核心指標(如QPS、錯誤率)需實時監控,日志分析可按需設置定時任務68
  3. 安全與權限:限制stub_status和監控接口的訪問IP,避免信息泄露26

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80436.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80436.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80436.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入解析 Vision Transformer (ViT) 與其在計算機視覺中的應用

在近年來,深度學習尤其在計算機視覺領域取得了巨大的進展,而 Vision Transformer(ViT)作為一種新的視覺模型,它的表現甚至在許多任務中超過了傳統的卷積神經網絡(CNN),如 ResNet。在…

PXE_Kickstart_無人值守自動化安裝系統

文章目錄 1. PXE2. 配置服務參數2.1 tftp服務配置2.2 dhcp服務配置2.3 http服務配置 3. 配置PXE環境3.1 網絡引導文件pxelinux.03.2 掛載鏡像文件3.3 創建配置文件default3.4 復制鏡像文件和驅動文件3.5 修改default文件3.6 配置ks.cfg文件 4. PXE客戶端4.1 創建虛擬機&#xf…

鴻蒙NEXT開發動畫案例4

1.創建空白項目 2.Page文件夾下面新建Spin.ets文件,代碼如下: /*** TODO SpinKit動畫組件 - 雙粒子旋轉縮放動畫* author: CSDN-鴻蒙布道師* since: 2025/05/08*/ ComponentV2 export struct SpinFour {// 參數定義Require Param spinSize: number 36…

基于STM32、HAL庫的CP2102-GMR USB轉UART收發器 驅動程序設計

一、簡介: CP2102-GMR是Silicon Labs公司生產的一款USB轉UART橋接芯片,主要特點包括: 集成USB 2.0全速功能控制器 內置USB收發器,無需外部電阻 工作電壓:3.0V至3.6V 支持的數據格式:數據位8,停止位1,無校驗 最高支持1Mbps的波特率 內置512字節接收緩沖區和512字節發送…

Ubuntu 22虛擬機【網絡故障】快速解決指南

Ubuntu22虛擬機突然無法連接網絡了,以下是故障排除步驟記錄。 Ubuntu 22虛擬機網絡故障快速解決指南 當在虛擬機中安裝的 Ubuntu 22 系統出現 ping: connect: 網絡不可達 和 ping: www.baidu.com: 域名解析出現暫時性錯誤的報錯時,通常意味著虛擬機無法…

實戰springcloud alibaba

實戰springcloud alibaba 前言 如何搭建一套最新的springcloud alibaba,以適配項目升級需求? 1.版本的選擇 2.各組件的適配 3.新技術的敏感性 4.前瞻性,幾年內不會被淘汰 參考資料:Spring Cloud Alibaba 參考文檔 https://spring…

泰迪杯特等獎案例學習資料:基于卷積神經網絡與集成學習的網絡問政平臺留言文本挖掘與分析

(第八屆“泰迪杯”數據挖掘挑戰賽A題特等獎案例深度解析) 一、案例背景與核心挑戰 1.1 應用場景與行業痛點 隨著“互聯網+政務”的推進,網絡問政平臺成為政府與民眾溝通的重要渠道。某市問政平臺日均接收留言超5000條,涉及民生、環保、交通等20余類訴求。然而,傳統人工…

DVWA靶場保姆級通關教程--06不安全驗證機制

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 目錄 文章目錄 前言 原理詳解 1. 前后端驗證邏輯不一致 2. 驗證碼值保存在客戶端 3. 驗證碼可預測或重復 4. 驗證碼驗證與邏輯解耦 一、處理關卡報錯 二、low級別源…

【LeetCode Hot100 | 每日刷題】排序數組

912. 排序數組 - 力扣(LeetCode) 題目: 給你一個整數數組 nums,請你將該數組升序排列。 你必須在 不使用任何內置函數 的情況下解決問題,時間復雜度為 O(nlog(n)),并且空間復雜度盡可能小。 示例 1&…

Windows系統下使用Kafka和Zookeeper,Python運行kafka(二)

1.配置 Zookeeper 進入解壓后的 Zookeeper 目錄(例如 F:\zookeeper\conf),復制 zoo_sample.cfg 文件并命名為 zoo.cfg(如果 zoo.cfg 已經存在,則直接編輯該文件)。 打開 zoo.cfg 文件,配置相關…

Web 自動化之 HTML JavaScript 詳解

文章目錄 一、HTML 常用標簽二、javascript 腳本1、什么是 javascript(js)2、 js變量和函數3、js 彈窗處理4、js 流程控制語句和 switch 結構語句應用 一、HTML 常用標簽 HTML:超文本標記語言 超文本:不僅只包含文字,還有超鏈接、視頻…這些…

el-date-picker的type為daterange時僅對開始日期做限制

文章目錄 前言繡球html代碼一、正確代碼二、錯誤代碼 前言繡球 需求是這樣的,開始日期需要限制只能選擇今天的日期,結束日期只能選擇今天之后的日期。結束日期很常見,但是單純限制開始日期,還是蠻少見的,尤其是datera…

觀測云:安全、可信賴的監控觀測云服務

引言 近日,“TikTok 遭歐盟隱私監管機構調查并處以 5.3 億歐元”一案,再次引發行業內對數據合規等話題的熱議。據了解,僅 2023 年一年就產生了超過 20 億美元的 GDPR 罰單。這凸顯了在全球化背景下,企業在數據隱私保護方面所面臨…

認識中間件-以及兩個簡單的示例

認識中間件-以及兩個簡單的示例 什么是中間件一個響應處理中間件老朋友 nest g如何使用為某個module引入全局引入編寫邏輯一個日志中間件nest g mi 生成引入思考代碼進度什么是中間件 官方文檔 中間件是在路由處理程序之前調用的函數。中間件函數可以訪問請求和響應對象,以及…

基于Flask、Bootstrap及深度學習的水庫智能監測分析平臺

基于Flask、Bootstrap及深度學習的水庫智能監測分析平臺 項目介紹 本項目是基于Flask框架構建的水庫智能監測分析平臺,集水庫數據管理、實時監測預警、可視化分析和智能預測功能于一體。 預測水位的預警級別:藍色預警沒有超過正常水位且接近正常水位1米…

springboot生成二維碼到海報模板上

springboot生成二維碼到海報模板上 QRCodeController package com.ruoyi.web.controller.app;import com.google.zxing.WriterException; import com.ruoyi.app.domain.Opportunity; import com.ruoyi.app.tool.QRCodeGenerator; import com.ruoyi.common.core.page.TableDat…

如何使用極狐GitLab 軟件包倉庫功能托管 maven?

極狐GitLab 是 GitLab 在中國的發行版,關于中文參考文檔和資料有: 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 軟件包庫中的 Maven 包 (BASIC ALL) 在項目的軟件包庫中發布 Maven 產物。然后,在需要將它們用作依賴項時安裝它…

企業如何將釘釘付款單高效集成到金蝶云星空?

釘釘數據集成到金蝶云星空:修改下推的付款單③ 在企業信息化系統中,數據的高效流轉和準確對接是實現業務流程自動化的關鍵。本文將分享一個實際案例,展示如何通過輕易云數據集成平臺,將釘釘中的付款單數據無縫集成到金蝶云星空系…

python 實現文件批量重命名

以下是使用Python實現文件批量重命名的示例代碼。該代碼可以將指定目錄下的文件按照一定規則進行重命名,這里以將文件重命名為帶有編號的文件名為例: import osdef batch_rename(directory):if not os.path.isdir(directory):print(

Pandas學習筆記(四)

DataFrame對象 文章目錄 DataFrame對象導入本文需要的包DataFrame與Series的相似之處使用read_csv函數導入DataFrameSeries和DataFrame的共享與專有屬性Series和DataFrame的共有方法 對DataFrame進行排序按照單列進行排序按照多列進行排序按照索引進行排序對列索引進行排序 設置…