一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

一臺Linux服務(wù)器最多能支撐多少個TCP連接?

Linux愛好者 ? 來源:開發(fā)內(nèi)功修煉 ? 作者:張彥飛 ? 2020-12-29 11:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【導(dǎo)讀】:單臺 Linux 服務(wù)器可以支撐多少個 TCP 連接?關(guān)于這個問題,我想很多客戶端的同學(xué)都不怎么了解,甚至于很多服務(wù)器開發(fā)也沒有特意的關(guān)注。

那么這個承載數(shù)到底取決了什么,是端口數(shù)量,還是內(nèi)存大小,亦或者是可創(chuàng)建文件句柄數(shù)量?讓我們一起來了解下吧。

困惑很多人的并發(fā)問題

在網(wǎng)絡(luò)開發(fā)中,我發(fā)現(xiàn)有很多同學(xué)對一個基礎(chǔ)問題始終是沒有徹底搞明白。那就是一臺服務(wù)器最大究竟能支持多少個網(wǎng)絡(luò)連接?我想我有必要單獨發(fā)一篇文章來好好說一下這個問題。

很多同學(xué)看到這個問題的第一反應(yīng)是65535。原因是:“聽說端口號最多有65535個,那長連接就最多保持65535個了”。是這樣的嗎?還有的人說:“應(yīng)該受TCP連接里四元組的空間大小限制,算起來是200多萬億個!”

如果你對這個問題也是理解的不夠徹底,那么今天講個故事講給你聽!

一次關(guān)于服務(wù)器端并發(fā)的聊天

793b0a68-4966-11eb-8b86-12bb97331649.png

"TCP連接四元組是源IP地址、源端口、目的IP地址和目的端口。任意一個元素發(fā)生了改變,那么就代表的是一條完全不同的連接了。拿我的Nginx舉例,它的端口是固定使用80。另外我的IP也是固定的,這樣目的IP地址、目的端口都是固定的。剩下源IP地址、源端口是可變的。所以理論上我的Nginx上最多可以建立2的32次方(ip數(shù))×2的16次方(port數(shù))個連接。這是兩百多萬億的一個大數(shù)字??!"

7968bf26-4966-11eb-8b86-12bb97331649.png

"進程每打開一個文件(linux下一切皆文件,包括socket),都會消耗一定的內(nèi)存資源。如果有不懷好心的人啟動一個進程來無限的創(chuàng)建和打開新的文件,會讓服務(wù)器崩潰。所以linux系統(tǒng)出于安全角度的考慮,在多個位置都限制了可打開的文件描述符的數(shù)量,包括系統(tǒng)級、用戶級、進程級。這三個限制的含義和修改方式如下:"

系統(tǒng)級:當(dāng)前系統(tǒng)可打開的最大數(shù)量,通過fs.file-max參數(shù)可修改

用戶級:指定用戶可打開的最大數(shù)量,修改/etc/security/limits.conf

進程級:單個進程可打開的最大數(shù)量,通過fs.nr_open參數(shù)可修改

799af0c2-4966-11eb-8b86-12bb97331649.png

"我的接收緩存區(qū)大小是可以配置的,通過sysctl命令就可以查看。"

$sysctl-a|greprmem net.ipv4.tcp_rmem=4096873808388608 net.core.rmem_default=212992 net.core.rmem_max=8388608

"其中在tcp_rmem"中的第一個值是為你們的TCP連接所需分配的最少字節(jié)數(shù)。該值默認是4K,最大的話8MB之多。也就是說你們有數(shù)據(jù)發(fā)送的時候我需要至少為對應(yīng)的socket再分配4K內(nèi)存,甚至可能更大。"

79dada84-4966-11eb-8b86-12bb97331649.png

"TCP分配發(fā)送緩存區(qū)的大小受參數(shù)net.ipv4.tcp_wmem配置影響。"

$sysctl-a|grepwmem net.ipv4.tcp_wmem=4096655368388608 net.core.wmem_default=212992 net.core.wmem_max=8388608

"在net.ipv4.tcp_wmem"中的第一個值是發(fā)送緩存區(qū)的最小值,默認也是4K。當(dāng)然了如果數(shù)據(jù)很大的話,該緩存區(qū)實際分配的也會比默認值大。"

7a0030f4-4966-11eb-8b86-12bb97331649.png

服務(wù)端百萬連接達成記

7a1500ce-4966-11eb-8b86-12bb97331649.png

“準(zhǔn)備啥呢,還記得前面說過Linux對最大文件對象數(shù)量有限制,所以要想完成這個實驗,得在用戶級、系統(tǒng)級、進程級等位置把這個上限加大。我們實驗?zāi)康氖?00W,這里都設(shè)置成110W,這個很重要!因為得保證做實驗的時候其它基礎(chǔ)命令例如ps,vi等是可用的?!?/p>

7a44dfba-4966-11eb-8b86-12bb97331649.png

7a5f307c-4966-11eb-8b86-12bb97331649.png

活動連接數(shù)量確實達到了100W:

$ss-n|grepESTAB|wc-l 1000024

當(dāng)前機器內(nèi)存總共是3.9GB,其中內(nèi)核Slab占用了3.2GB之多。MemFree和Buffers加起來也只剩下100多MB了:

$cat/proc/meminfo MemTotal:3922956kB MemFree:96652kB MemAvailable:6448kB Buffers:44396kB ...... Slab:3241244KBkB

通過slabtop命令可以查看到densty、flip、sock_inode_cache、TCP四個內(nèi)核對象都分別有100W個:

7ae92afc-4966-11eb-8b86-12bb97331649.png

結(jié)語

互聯(lián)網(wǎng)后端的業(yè)務(wù)特點之一就是高并發(fā). 但是一臺服務(wù)器最大究竟能支持多少個TCP連接,這個問題似乎卻又在困惑著很多同學(xué)。希望今天過后,你能夠?qū)⑦@個問題踩在腳下摩擦!

原文標(biāo)題:漫畫:一臺 Linux 服務(wù)器最多能支撐多少個 TCP 連接

文章出處:【微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    55

    文章

    11239

    瀏覽量

    106009
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11496

    瀏覽量

    213224
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9749

    瀏覽量

    87547

原文標(biāo)題:漫畫:一臺 Linux 服務(wù)器最多能支撐多少個 TCP 連接

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    服務(wù)器數(shù)據(jù)恢復(fù)—服務(wù)器部分?jǐn)?shù)據(jù)目錄項被破壞的數(shù)據(jù)恢復(fù)案例

    一臺安裝linux系統(tǒng)的服務(wù)器意外斷電。管理員重啟服務(wù)器后進行檢測,發(fā)現(xiàn)服務(wù)器上部分文件丟失。管理員沒有進行任何操作,直接將
    的頭像 發(fā)表于 05-08 15:16 ?109次閱讀

    termius如何使用,termius如何使用的過程,linux服務(wù)器遠程連接的實用教程

    ? ?? ? ?隨著技術(shù)的不斷進步,服務(wù)器遠程連接技術(shù)也在不斷提升其性能和安全性,以滿足企業(yè)日益增長的需求。本文將和大家起討論termius如何使用的過程以及Linux遠程桌面
    的頭像 發(fā)表于 12-19 11:31 ?670次閱讀
    termius如何使用,termius如何使用的過程,<b class='flag-5'>linux</b><b class='flag-5'>服務(wù)器</b>遠程<b class='flag-5'>連接</b>的實用教程

    如何使用 Mobaxterm 建立 Linux 服務(wù)器連接

    不同的會話類型。為了連接Linux 服務(wù)器,你可以選擇以下會話類型之: SSH :用于安全地連接到遠程
    的頭像 發(fā)表于 11-11 09:06 ?1528次閱讀

    服務(wù)器數(shù)據(jù)恢復(fù)—Linux網(wǎng)站服務(wù)器硬盤出現(xiàn)壞扇區(qū)的數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境: 一臺linux操作系統(tǒng)網(wǎng)站服務(wù)器,該服務(wù)器上部署了幾十網(wǎng)站,使用
    的頭像 發(fā)表于 10-09 16:26 ?439次閱讀

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

    優(yōu)化Linux服務(wù)器的性能是綜合性的任務(wù),涉及硬件、軟件、配置、監(jiān)控等多個方面。以下是
    的頭像 發(fā)表于 09-29 16:50 ?629次閱讀

    服務(wù)器數(shù)據(jù)恢復(fù)—硬盤出現(xiàn)壞扇區(qū)導(dǎo)致網(wǎng)站服務(wù)器宕機的數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境: 一臺linux操作系統(tǒng)服務(wù)器上跑了幾十網(wǎng)站,服務(wù)器上只有
    的頭像 發(fā)表于 09-12 12:02 ?525次閱讀

    多個網(wǎng)站放在同一臺服務(wù)器ip有什么影響?

    將多個網(wǎng)站放在同一臺服務(wù)器上,使用同一個IP地址,可能會有以下影響: 1、資源共享:多個網(wǎng)站共享同一臺服務(wù)器的資源,如CPU、內(nèi)存、存儲空間和帶寬。如果其中
    的頭像 發(fā)表于 09-12 11:15 ?1237次閱讀

    恒訊科技分析:站群服務(wù)器能建多少個網(wǎng)站?

    站群服務(wù)器種專門用于托管多個網(wǎng)站的服務(wù)器,它可以支持從幾個到數(shù)千網(wǎng)站,具體數(shù)量取決于服務(wù)器的硬件配置、帶寬、存儲空間以及所托管網(wǎng)站的復(fù)
    的頭像 發(fā)表于 08-21 13:29 ?356次閱讀

    服務(wù)器數(shù)據(jù)恢復(fù)—xfs文件系統(tǒng)服務(wù)器數(shù)據(jù)恢復(fù)案例

    某公司一臺服務(wù)器,連接一臺存儲。該服務(wù)器安裝linux操作系統(tǒng),文件系統(tǒng)為xfs。 在運行過程中該
    的頭像 發(fā)表于 08-19 10:49 ?567次閱讀

    主機托管是多個用戶共享一臺服務(wù)器嗎?有什么優(yōu)勢

    主機托管并不是多個用戶共享一臺服務(wù)器。主機托管是服務(wù),客戶可以將自己的硬件服務(wù)器托管給服務(wù)商,并享受專業(yè)的
    的頭像 發(fā)表于 08-13 14:45 ?504次閱讀

    如果ESP上的TCP客戶端與服務(wù)器斷開連接,如何啟用自動重連?

    ESP - TCP 客戶端 嵌入式 Linux 服務(wù)器 - TCP 服務(wù)器 如果ESP上的TCP
    發(fā)表于 07-17 06:25

    基于esp8266創(chuàng)建TCP服務(wù)器TCP服務(wù)器每秒自動斷開連接是為什么?

    我基于 esp8266 創(chuàng)建 TCP 服務(wù)器。它總是每秒斷開次。我不知道為什么。我已將espconn_register_time設(shè)置為
    發(fā)表于 07-15 08:26

    tcp方式連接不了服務(wù)器了,服務(wù)器代碼還能開源嗎?

    是在維護服務(wù)器嗎?已經(jīng)兩天了。http方式還可以連接上,就tcp的方式不行了.服務(wù)器代碼能開源嗎?讓我們自己搭建服務(wù)器用。
    發(fā)表于 07-15 06:53

    ESP826如何運行AP TCP服務(wù)器?

    我正在開發(fā)室外遠程控制系統(tǒng),帶有來自ESP8266 AP的專用WLAN。帶有 TCP 客戶端的平板電腦應(yīng)連接到它,以便在 ESP 上設(shè)置
    發(fā)表于 07-09 06:27

    如何同時在ESP8266上運行TCP客戶端和TCP服務(wù)?

    我們是 esp8266 的長期用戶,并在該芯片上運行數(shù)千家庭自動化類別的現(xiàn)場設(shè)備。然而,小小的限制阻礙了我們開發(fā)些更有趣和創(chuàng)新的產(chǎn)品。 要求:我們需要同時運行
    發(fā)表于 07-08 08:26