目錄
1.1 高並發概念
##2.1 垂直擴展
首頁 運維 linux運維 linux高並發是什麼意思

linux高並發是什麼意思

Nov 11, 2022 pm 03:25 PM
linux

在linux中,高並發是系統運行過程中遇到的一種「短時間內遇到大量操作請求」的情況,主要發生在web系統集中大量存取收到大量請求;該情況的發生會導致系統在這段時間內執行大量操作,例如對資源的請求,資料庫的操作等。

linux高並發是什麼意思

本教學操作環境:linux7.3系統、Dell G3電腦。

一高並發概念

1.1 高並發概念

高並發(High Concurrency)是互聯網分散式系統架構設計中必須考慮的因素之一,它通常是指,透過設計保證系統能夠同時並行處理許多請求

高並發(High Concurrency)是一種系統運行過程中遇到的一種「短時間內遇到大量操作請求」的情況,主要發生在web系統集中大量訪問收到大量請求(例如:12306的搶票狀況;天貓雙十一活動)。這種情況的發生會導致系統在這段時間內執行大量操作,例如對資源的請求,資料庫的操作等。

1.2 高併發相關指標

  • 回應時間(Response Time)
    • 系統對請求做出回應的時間。例如係統處理一個HTTP請求需要200ms,這個200ms就是系統的回應時間
  • 吞吐量(Throughput)
    • 單位時間內處理的請求數量
  • 每秒查詢率QPS(Query Per Second)
    • 每秒回應請求數。在網路領域,這個指標和吞吐量區分的沒有這麼明顯
  • 並髮用戶數(User Concurrence)
    • 同時承載正常使用系統功能的使用者數量。例如一個即時通訊系統,同時在線量一定程度上代表了系統的並髮用戶數

#1.3 高並發優化方面

  • 單一進程最大開啟檔案數限制

  • #核心TCP參數方面

  • IO事件分配機制

二提升系統的並發能力

##2.1 垂直擴展

    提昇單機處理能力
    • 增強單機硬體效能,例如:增加CPU核數如32核,升級更好的網卡如萬兆,升級更好的硬碟如SSD ,擴充硬碟容量如2T,擴充系統記憶體如128G

    • #提升單機架構效能,例如:使用Cache來減少IO次數,使用非同步增加單一服務吞吐量,使用無鎖資料結構來減少回應時間

#2.2 水平擴展

##增加伺服器數量,就能線性擴充系統效能

2.3 常見互聯網分層架構(1)客戶端層:典型調用方是瀏覽器browser或手機應用APP

(2)反向代理層:系統入口,反向代理

(3)網站應用程式層:實作核心應用邏輯,返回html或者json

(4)服務層:如果實現了服務化,就有這一層

(5)資料-快取層:快取加速存取儲存

(6 )資料-資料庫層:資料庫固化資料儲存

2.4 水平擴展架構

    反向代理層的水平擴充
  • 當nginx成為瓶頸的時候,只要增加伺服器數量,新增nginx服務的部署,增加一個外網ip,就能擴充反向代理層的效能,做到理論上的無限高並發
  • 透過「DNS輪詢」實現的:dns-server對於一個網域配置了多個解析ip,每次DNS解析請求來存取dns-server ,會輪詢返回這些ip
  • 網站層的水平擴展
    • 透過「nginx」實現的。透過修改nginx.conf,可以設定多個web後端
    • 當web後端成為瓶頸的時候,只要增加伺服器數量,新增web服務的部署,在nginx配置中配置上新的web後端,就能擴展站點層的效能,做到理論上的無限高並發
  • 服務層的水平擴展
    • #透過「服務連接池」實現的
    • 網站層透過RPC-client呼叫下游的服務層RPC-server時,RPC-client中的連接池會建立與下游服務多個連接,當服務成為瓶頸的時候,只要增加伺服器數量,新增服務部署,在RPC-client處建立新的下游服務連接,就能擴展服務層效能,做到理論上的無限高並發
  • 資料層的水平擴展
    • 資料層(緩存,資料庫)涉及資料的水平擴展,將原本儲存在一台伺服器上的資料(緩存,資料庫)水平拆分到不同伺服器上去,以達到擴充系統效能的目的。
    • 儲存一定範圍的資料

      • user0函式庫,儲存uid範圍1-1kw

      • user1函式庫,儲存uid範圍1kw-2kw

    • 依照哈希水平拆分

      • user0函式庫,儲存偶數uid資料

      • user1函式庫,儲存奇數uid資料

  • #三單一Linux伺服器提升並發
  • 3.1 iptables相關
關閉iptables防火牆,阻止kernel載入iptables模組

單一進程最大開啟檔案數限制(預設單一進程最大開啟1024個檔案)
ulimit –n 65535
登入後複製

修改Linux系統對使用者的開啟檔案數的軟限制與硬限制
    vim /etc/security/limits.conf
    * soft nofile 65535   #'*'表示修改所有用户的限制
    * hard nofile 65535
    登入後複製
    #用户完成系统登录后读取/etc/security/limits.conf文件
    vim /etc/pam.d/login
    sessionrequired /lib/security/pam_limits.so
    登入後複製
  • #3.2 核心TCP參數##TIME_WAIT狀態

    ####### ###TCP連線中斷後,會以TIME_WAIT狀態保留一定的時間,然後才會釋放連接埠。當並發請求過多的時候,就會產生大量的TIME_WAIT狀態的連接,無法及時斷開的話,會佔用大量的端口資源和伺服器資源#########
    #查看TIME_WAIT状态连接
    netstat -n | grep tcp | grep TIME_WAIT |wc -l
    登入後複製
    # vim /etc/sysctl.conf
    net.ipv4.tcp_syncookies= 1 #表示开启SYNCookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
    net.ipv4.tcp_tw_reuse= 1 #表示开启重用。允许将TIME-WAITsockets重新用于新的TCP连接,默认为0,表示关闭;
    net.ipv4.tcp_tw_recycle= 1 #表示开启TCP连接中TIME-WAITsockets的快速回收,默认为0,表示关闭;
    net.ipv4.tcp_fin_timeout= 30  #修改系統默认的TIMEOUT 时间。
    登入後複製
    ###相關推薦:《 ###Linux影片教學###》###

    以上是linux高並發是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

    VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

    Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

    Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

    vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

    vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

    git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

    要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

    notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

    雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

    vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

    在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

    Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

    Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

    vscode終端命令不能用 vscode終端命令不能用 Apr 15, 2025 pm 10:03 PM

    VS Code 終端命令無法使用的原因及解決辦法:未安裝必要的工具(Windows:WSL;macOS:Xcode 命令行工具)路徑配置錯誤(添加可執行文件到 PATH 環境變量中)權限問題(以管理員身份運行 VS Code)防火牆或代理限制(檢查設置,解除限制)終端設置不正確(啟用使用外部終端)VS Code 安裝損壞(重新安裝或更新)終端配置不兼容(嘗試不同的終端類型或命令)特定環境變量缺失(設置必要的環境變量)

    See all articles