chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

聊聊在高并發(fā)場(chǎng)景下如何優(yōu)化服務(wù)器的性能?

OSC開(kāi)源社區(qū) ? 來(lái)源:冰河技術(shù) ? 2023-03-13 10:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫(xiě)在前面

最近,有小伙伴在群里提問(wèn):Linux系統(tǒng)怎么設(shè)置tcp_nodelay參數(shù)?也有小伙伴說(shuō)問(wèn)我。那今天,我們就來(lái)根據(jù)這個(gè)問(wèn)題來(lái)聊聊在高并發(fā)場(chǎng)景下如何優(yōu)化服務(wù)器的性能這個(gè)話題。

其實(shí),tcp_nodelay參數(shù)并不是在操作系統(tǒng)級(jí)別進(jìn)行配置的,而是在TCP套接字上添加tcp_nodelay參數(shù)來(lái)關(guān)閉粘包算法,以便使數(shù)據(jù)包能夠立即投遞出去。tcp_nodelay參數(shù)主要是對(duì)TCP套接字來(lái)說(shuō)的,那對(duì)于服務(wù)器硬件,如果要使其能夠支撐上百萬(wàn)甚至上千萬(wàn)的并發(fā),我們?cè)撊绾螌?duì)其進(jìn)行優(yōu)化呢?

操作系統(tǒng)

這里,我使用的操作系統(tǒng)為CentOS 8,我們可以輸入如下命令來(lái)查看操作系統(tǒng)的版本。

CentOSLinuxrelease8.0.1905(Core)

對(duì)于高并發(fā)的場(chǎng)景,我們主要還是優(yōu)化操作系統(tǒng)的網(wǎng)絡(luò)性能,而操作系統(tǒng)中,有很多關(guān)于網(wǎng)絡(luò)協(xié)議的參數(shù),我們對(duì)于服務(wù)器網(wǎng)絡(luò)性能的優(yōu)化,主要是對(duì)這些系統(tǒng)參數(shù)進(jìn)行調(diào)優(yōu),以達(dá)到提升我們應(yīng)用訪問(wèn)性能的目的。

系統(tǒng)參數(shù)

在CentOS 操作系統(tǒng)中,我們可以通過(guò)如下命令來(lái)查看所有的系統(tǒng)參數(shù)。

/sbin/sysctl-a

部分輸出結(jié)果如下所示。

454f3832-bfb6-11ed-bfe3-dac502259ad0.png

這里的參數(shù)太多了,大概有一千多個(gè),在高并發(fā)場(chǎng)景下,我們不可能對(duì)操作系統(tǒng)的所有參數(shù)進(jìn)行調(diào)優(yōu)。我們更多的是關(guān)注與網(wǎng)絡(luò)相關(guān)的參數(shù)。如果想獲得與網(wǎng)絡(luò)相關(guān)的參數(shù),那么,我們首先需要獲取操作系統(tǒng)參數(shù)的類(lèi)型,如下命令可以獲取操作系統(tǒng)參數(shù)的類(lèi)型。

/sbin/sysctl-a|awk-F"."'{print$1}'|sort-k1|uniq

運(yùn)行命令輸出的結(jié)果信息如下所示。

abi
crypto
debug
dev
fs
kernel
net
sunrpc
user
vm
45643f98-bfb6-11ed-bfe3-dac502259ad0.png

其中的net類(lèi)型就是我們要關(guān)注的與網(wǎng)絡(luò)相關(guān)的操作系統(tǒng)參數(shù)。我們可以獲取net類(lèi)型下的子類(lèi)型,如下所示。

/sbin/sysctl-a|grep"^net."|awk-F"[.|]"'{print$2}'|sort-k1|uniq

輸出的結(jié)果信息如下所示。

bridge
core
ipv4
ipv6
netfilter
nf_conntrack_max
unix
456bf4e0-bfb6-11ed-bfe3-dac502259ad0.png

在Linux操作系統(tǒng)中,這些與網(wǎng)絡(luò)相關(guān)的參數(shù)都可以在/etc/sysctl.conf 文件里修改,如果/etc/sysctl.conf 文件中不存在這些參數(shù),我們可以自行在/etc/sysctl.conf 文件中添加這些參數(shù)。

在net類(lèi)型的子類(lèi)型中,我們需要重點(diǎn)關(guān)注的子類(lèi)型有:core和ipv4。

優(yōu)化套接字緩沖區(qū)

如果服務(wù)器的網(wǎng)絡(luò)套接字緩沖區(qū)太小,就會(huì)導(dǎo)致應(yīng)用程序讀寫(xiě)多次才能將數(shù)據(jù)處理完,這會(huì)大大影響我們程序的性能。如果網(wǎng)絡(luò)套接字緩沖區(qū)設(shè)置的足夠大,從一定程度上能夠提升我們程序的性能。

我們可以在服務(wù)器的命令行輸入如下命令,來(lái)獲取有關(guān)服務(wù)器套接字緩沖區(qū)的信息。

/sbin/sysctl-a|grep"^net."|grep"[r|w|_]mem[_|]"

輸出的結(jié)果信息如下所示。

net.core.rmem_default=212992
net.core.rmem_max=212992
net.core.wmem_default=212992
net.core.wmem_max=212992
net.ipv4.tcp_mem=435455806287090
net.ipv4.tcp_rmem=4096873806291456
net.ipv4.tcp_wmem=4096163844194304
net.ipv4.udp_mem=87093116125174186
net.ipv4.udp_rmem_min=4096
net.ipv4.udp_wmem_min=4096
45770ad8-bfb6-11ed-bfe3-dac502259ad0.png

其中,帶有max、default、min關(guān)鍵字的為分別代表:最大值、默認(rèn)值和最小值;帶有mem、rmem、wmem關(guān)鍵字的分別為:總內(nèi)存、接收緩沖區(qū)內(nèi)存、發(fā)送緩沖區(qū)內(nèi)存。

這里需要注意的是:帶有rmem 和 wmem關(guān)鍵字的單位都是“字節(jié)”,而帶有mem關(guān)鍵字的單位是“頁(yè)”?!绊?yè)”是操作系統(tǒng)管理內(nèi)存的最小單位,在 Linux 系統(tǒng)里,默認(rèn)一頁(yè)是 4KB 大小。

如何優(yōu)化頻繁收發(fā)大文件

如果在高并發(fā)場(chǎng)景下,需要頻繁的收發(fā)大文件,我們?cè)撊绾蝺?yōu)化服務(wù)器的性能呢?

這里,我們可以修改的系統(tǒng)參數(shù)如下所示。

net.core.rmem_default
net.core.rmem_max
net.core.wmem_default
net.core.wmem_max
net.ipv4.tcp_mem
net.ipv4.tcp_rmem
net.ipv4.tcp_wmem

這里,我們做個(gè)假設(shè),假設(shè)系統(tǒng)最大可以給TCP分配 2GB 內(nèi)存,最小值為 256MB,壓力值為 1.5GB。按照一頁(yè)為 4KB 來(lái)計(jì)算, tcp_mem 的最小值、壓力值、最大值分別是 65536、393216、524288,單位是“頁(yè)” 。

假如平均每個(gè)文件數(shù)據(jù)包為 512KB,每個(gè)套接字讀寫(xiě)緩沖區(qū)最小可以各容納 2 個(gè)數(shù)據(jù)包,默認(rèn)可以各容納 4 個(gè)數(shù)據(jù)包,最大可以各容納 10 個(gè)數(shù)據(jù)包,那我們可以算出 tcp_rmem 和 tcp_wmem 的最小值、默認(rèn)值、最大值分別是 1048576、2097152、5242880,單位是“字節(jié)”。而 rmem_default 和 wmem_default 是 2097152,rmem_max 和 wmem_max 是 5242880。

注:后面詳細(xì)介紹這些數(shù)值是如何計(jì)算的~~

這里,還需要注意的是:緩沖區(qū)超過(guò)了 65535,還需要將 net.ipv4.tcp_window_scaling 參數(shù)設(shè)置為 1。

經(jīng)過(guò)上面的分析后,我們最終得出的系統(tǒng)調(diào)優(yōu)參數(shù)如下所示。

net.core.rmem_default=2097152
net.core.rmem_max=5242880
net.core.wmem_default=2097152
net.core.wmem_max=5242880
net.ipv4.tcp_mem=65536393216524288
net.ipv4.tcp_rmem=104857620971525242880
net.ipv4.tcp_wmem=104857620971525242880

優(yōu)化TCP連接

對(duì)計(jì)算機(jī)網(wǎng)絡(luò)有一定了解的小伙伴都知道,TCP的連接需要經(jīng)過(guò)“三次握手”和“四次揮手”的,還要經(jīng)過(guò)慢啟動(dòng)、滑動(dòng)窗口、粘包算法等支持可靠性傳輸?shù)囊幌盗屑夹g(shù)支持。雖然,這些能夠保證TCP協(xié)議的可靠性,但有時(shí)這會(huì)影響我們程序的性能。

那么,在高并發(fā)場(chǎng)景下,我們?cè)撊绾蝺?yōu)化TCP連接呢?

(1)關(guān)閉粘包算法

如果用戶(hù)對(duì)于請(qǐng)求的耗時(shí)很敏感,我們就需要在TCP套接字上添加tcp_nodelay參數(shù)來(lái)關(guān)閉粘包算法,以便數(shù)據(jù)包能夠立刻發(fā)送出去。此時(shí),我們也可以設(shè)置net.ipv4.tcp_syncookies的參數(shù)值為1。

(2)避免頻繁的創(chuàng)建和回收連接資源

網(wǎng)絡(luò)連接的創(chuàng)建和回收是非常消耗性能的,我們可以通過(guò)關(guān)閉空閑的連接、重復(fù)利用已經(jīng)分配的連接資源來(lái)優(yōu)化服務(wù)器的性能。重復(fù)利用已經(jīng)分配的連接資源大家其實(shí)并不陌生,像:線程池、數(shù)據(jù)庫(kù)連接池就是復(fù)用了線程和數(shù)據(jù)庫(kù)連接。

我們可以通過(guò)如下參數(shù)來(lái)關(guān)閉服務(wù)器的空閑連接和復(fù)用已分配的連接資源。

net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_keepalive_time=1800

(3)避免重復(fù)發(fā)送數(shù)據(jù)包

TCP支持超時(shí)重傳機(jī)制。如果發(fā)送方將數(shù)據(jù)包已經(jīng)發(fā)送給接收方,但發(fā)送方并未收到反饋,此時(shí),如果達(dá)到設(shè)置的時(shí)間間隔,就會(huì)觸發(fā)TCP的超時(shí)重傳機(jī)制。為了避免發(fā)送成功的數(shù)據(jù)包再次發(fā)送,我們需要將服務(wù)器的net.ipv4.tcp_sack參數(shù)設(shè)置為1。

(4)增大服務(wù)器文件描述符數(shù)量

在Linux操作系統(tǒng)中,一個(gè)網(wǎng)絡(luò)連接也會(huì)占用一個(gè)文件描述符,連接越多,占用的文件描述符也就越多。如果文件描述符設(shè)置的比較小,也會(huì)影響我們服務(wù)器的性能。此時(shí),我們就需要增大服務(wù)器文件描述符的數(shù)量。

例如:fs.file-max = 10240000,表示服務(wù)器最多可以打開(kāi)10240000個(gè)文件。

好了,本文結(jié)合群內(nèi)讀者的提問(wèn)進(jìn)行了一些總結(jié),希望能夠給小伙伴們帶來(lái)實(shí)質(zhì)性的幫助。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7147

    瀏覽量

    125571
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    605

    瀏覽量

    28586
  • CentOS
    +關(guān)注

    關(guān)注

    0

    文章

    83

    瀏覽量

    14274
  • TCP通信
    +關(guān)注

    關(guān)注

    0

    文章

    146

    瀏覽量

    4552

原文標(biāo)題:高并發(fā)場(chǎng)景下如何優(yōu)化服務(wù)器的性能?

文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RAKsmart服務(wù)器如何重塑AI并發(fā)算力格局

    AI大模型參數(shù)量突破萬(wàn)億級(jí)、實(shí)時(shí)推理需求激增的當(dāng)下,傳統(tǒng)服務(wù)器架構(gòu)的并發(fā)處理能力已逼近物理極限。RAKsmart通過(guò)“硬件重構(gòu)+軟件定義”的雙引擎創(chuàng)新,推出新一代AI服務(wù)器解決方案。
    的頭像 發(fā)表于 04-03 10:37 ?311次閱讀

    服務(wù)器如何測(cè)試穩(wěn)定性能好壞?4步終極測(cè)試指南

    服務(wù)器穩(wěn)定性測(cè)試絕非簡(jiǎn)單跑分,需通過(guò)"壓力模擬+長(zhǎng)期監(jiān)控+場(chǎng)景還原"三位一體策略。優(yōu)質(zhì)服務(wù)器應(yīng)在并發(fā)、長(zhǎng)周期、復(fù)雜網(wǎng)絡(luò)環(huán)境
    的頭像 發(fā)表于 04-02 10:22 ?399次閱讀

    一文詳解香港服務(wù)器租用需要哪些性能要求

    香港服務(wù)器租用需滿足硬件性能、網(wǎng)絡(luò)質(zhì)量、安全合規(guī)、擴(kuò)展能力四大核心要求,旨在支撐業(yè)務(wù)并發(fā)、低延遲、穩(wěn)定安全的運(yùn)行環(huán)境。其性能配置需與業(yè)務(wù)
    的頭像 發(fā)表于 03-06 10:43 ?377次閱讀

    站群服務(wù)器與VPS的適用場(chǎng)景有什么不同嗎

    站群服務(wù)器與VPS虛擬專(zhuān)用服務(wù)器適用場(chǎng)景上確實(shí)存在顯著的差異。以下是兩者適用場(chǎng)景的具體對(duì)比,主機(jī)推薦小編為您整理發(fā)布群
    的頭像 發(fā)表于 02-05 10:08 ?421次閱讀

    Supermicro高性能服務(wù)器量產(chǎn)供貨,優(yōu)化多重工作負(fù)載

    Supermicro, Inc.近日宣布其搭載Intel Xeon 6900系列性能核架構(gòu)處理的高性能服務(wù)器已開(kāi)始量產(chǎn)供貨。 這一系列服務(wù)器
    的頭像 發(fā)表于 01-21 11:00 ?478次閱讀

    做網(wǎng)站云服務(wù)器還是服務(wù)器好一些?

    做網(wǎng)站云服務(wù)器還是服務(wù)器好一些?做網(wǎng)站選擇云服務(wù)器通常更好,因?yàn)樗峁┏杀拘б妗?b class='flag-5'>高可擴(kuò)展性、可用性和便捷的管理維護(hù),尤其適合中小企業(yè)和個(gè)人
    的頭像 發(fā)表于 01-08 09:56 ?471次閱讀

    新加坡服務(wù)器性能測(cè)試報(bào)告

    新加坡服務(wù)器在此次測(cè)評(píng)中展現(xiàn)了出色的性能和多項(xiàng)顯著的優(yōu)勢(shì)。速度與帶寬方面,測(cè)試結(jié)果顯示,服務(wù)器國(guó)內(nèi)三網(wǎng)(電信、聯(lián)通、移動(dòng))以及國(guó)際鏈路
    的頭像 發(fā)表于 12-26 09:46 ?394次閱讀

    NTP服務(wù)器性能優(yōu)化方法

    NTP(Network Time Protocol,網(wǎng)絡(luò)時(shí)間協(xié)議)服務(wù)器性能優(yōu)化對(duì)于確保時(shí)間同步的準(zhǔn)確性和可靠性至關(guān)重要。以下是一些NTP服務(wù)器
    的頭像 發(fā)表于 12-18 15:24 ?1191次閱讀

    使用Python構(gòu)建高效的HTTP代理服務(wù)器

    構(gòu)建一個(gè)高效的HTTP代理服務(wù)器Python中涉及多個(gè)方面,包括性能優(yōu)化并發(fā)處理、協(xié)議支持(HTTP/HTTPS)、錯(cuò)誤處理以及日志記錄
    的頭像 發(fā)表于 10-23 07:41 ?527次閱讀

    GPU高性能服務(wù)器配置

    GPU高性能服務(wù)器作為提升計(jì)算速度和效率的關(guān)鍵設(shè)備,各大應(yīng)用場(chǎng)景中發(fā)揮著越來(lái)越重要的作用。在此,petacloud.ai小編為你介紹GPU高性能
    的頭像 發(fā)表于 10-21 10:42 ?858次閱讀

    如何優(yōu)化Linux服務(wù)器性能

    優(yōu)化Linux服務(wù)器性能是一個(gè)綜合性的任務(wù),涉及硬件、軟件、配置、監(jiān)控等多個(gè)方面。以下是一個(gè)詳細(xì)的指南,旨在幫助系統(tǒng)管理員和運(yùn)維人員提升Linux服務(wù)器
    的頭像 發(fā)表于 09-29 16:50 ?670次閱讀

    服務(wù)器怎么樣

    服務(wù)器主要針對(duì)DDoS攻擊提供專(zhuān)業(yè)的防御服務(wù),其性能和配置都旨在確保業(yè)務(wù)遭受大規(guī)模網(wǎng)絡(luò)攻擊時(shí)能夠保持正常運(yùn)行。以下是具體分析,rak部
    的頭像 發(fā)表于 08-21 14:41 ?562次閱讀

    韓國(guó)服務(wù)器性能如何提升

    韓國(guó)服務(wù)器性能可以通過(guò)硬件升級(jí)、網(wǎng)絡(luò)優(yōu)化、緩存優(yōu)化和軟件優(yōu)化來(lái)提升。具體方法如下,rak小編為您整理發(fā)布韓國(guó)
    的頭像 發(fā)表于 08-15 11:33 ?458次閱讀

    如何評(píng)估美國(guó)洛杉磯服務(wù)器性能

    評(píng)估美國(guó)洛杉磯服務(wù)器性能對(duì)于確保網(wǎng)站或應(yīng)用程序的穩(wěn)定性和安全性至關(guān)重要。服務(wù)器通常被用來(lái)抵御分布式拒絕
    的頭像 發(fā)表于 07-31 09:52 ?537次閱讀

    美國(guó)站群vps云服務(wù)器的應(yīng)用場(chǎng)景和使用方法

    美國(guó)站群VPS云服務(wù)器多站點(diǎn)托管、SEO優(yōu)化、可用性與穩(wěn)定性、成本效益、安全性以及特定行業(yè)應(yīng)用等方面具有廣泛的應(yīng)用場(chǎng)景。美國(guó)站群VPS云
    的頭像 發(fā)表于 07-26 15:56 ?744次閱讀