色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

Linux愛好者 ? 來源:開發內功修煉 ? 作者:張彥飛 ? 2020-12-29 11:13 ? 次閱讀

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

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

困惑很多人的并發問題

網絡開發中,我發現有很多同學對一個基礎問題始終是沒有徹底搞明白。那就是一臺服務器最大究竟能支持多少個網絡連接?我想我有必要單獨發一篇文章來好好說一下這個問題。

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

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

一次關于服務器端并發的聊天

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

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

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

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

系統級:當前系統可打開的最大數量,通過fs.file-max參數可修改

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

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

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

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

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

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

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

"TCP分配發送緩存區的大小受參數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"中的第一個值是發送緩存區的最小值,默認也是4K。當然了如果數據很大的話,該緩存區實際分配的也會比默認值大。"

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

服務端百萬連接達成記

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

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

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

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

活動連接數量確實達到了100W:

$ss-n|grepESTAB|wc-l 1000024

當前機器內存總共是3.9GB,其中內核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四個內核對象都分別有100W個:

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

結語

互聯網后端的業務特點之一就是高并發. 但是一臺服務器最大究竟能支持多少個TCP連接,這個問題似乎卻又在困惑著很多同學。希望今天過后,你能夠將這個問題踩在腳下摩擦!

原文標題:漫畫:一臺 Linux 服務器最多能支撐多少個 TCP 連接

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

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 互聯網
    +關注

    關注

    54

    文章

    11184

    瀏覽量

    103670
  • Linux
    +關注

    關注

    87

    文章

    11342

    瀏覽量

    210136
  • 服務器
    +關注

    關注

    12

    文章

    9295

    瀏覽量

    85858

原文標題:漫畫:一臺 Linux 服務器最多能支撐多少個 TCP 連接

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

收藏 人收藏

    評論

    相關推薦

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

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

    如何使用 Mobaxterm 建立 Linux 服務器連接

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

    服務器數據恢復—Linux網站服務器硬盤出現壞扇區的數據恢復案例

    服務器數據恢復環境: 一臺linux操作系統網站服務器,該服務器上部署了幾十網站,使用
    的頭像 發表于 10-09 16:26 ?246次閱讀

    服務器數據恢復—硬盤出現壞扇區導致網站服務器宕機的數據恢復案例

    服務器數據恢復環境: 一臺linux操作系統服務器上跑了幾十網站,服務器上只有
    的頭像 發表于 09-12 12:02 ?270次閱讀

    多個網站放在同一臺服務器ip有什么影響?

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

    服務器數據恢復—xfs文件系統服務器數據恢復案例

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

    主機托管是多個用戶共享一臺服務器嗎?有什么優勢

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

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

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

    基于esp8266創建TCP服務器,TCP服務器每秒自動斷開連接是為什么?

    我基于 esp8266 創建 TCP 服務器。它總是每秒斷開次。我不知道為什么。我已將espconn_register_time設置為
    發表于 07-15 08:26

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

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

    ESP826如何運行AP TCP服務器

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

    恒訊科技分析:一臺物理服務器可以組幾個磁盤陣列?

    一臺物理服務器可以組成多個磁盤陣列(RAID),具體數量取決于服務器的硬件配置和設計。以下是些影響磁盤陣列數量的因素: 1、硬盤接口數量:服務器
    的頭像 發表于 05-09 17:25 ?977次閱讀

    STM32EB55CGU6藍牙openthread協議的路由設備最多可以帶多少個低功耗設備?

    STM32EB55CGU6藍牙openthread協議中的路由設備最多可以帶多少個低功耗設備?
    發表于 03-13 08:18

    cybt343026-01最多能scan到多少個

    我想問下cybt343026-01的模塊,scan的話,最多能scan到多少個?
    發表于 03-01 06:44

    linux服務器和windows服務器

    較為熟悉,需要高性能和穩定性,并且希望能夠進行自定義配置和更好的安全性,那 么Linux服務器不錯的選擇。 而如果你對服務器操作系統不
    發表于 02-22 15:46
    主站蜘蛛池模板: 久久精品国产99欧美精品亚洲 | 国产精品欧美亚洲 | 精品含羞草免费视频观看 | 成人网站国产在线视频内射视频 | 国产精品成人无码久免费 | 世界第一黄暴漫画家 | 俄罗斯一级毛片aaaa | 欧美一级久久久久久久大 | 中国xxxxxx片免费播放 | 精品无码久久久久久国产百度 | 贤妻良母电影日本 | 久久综合网久久综合 | 无套内射在线观看THEPORN | mm625亚洲人成电影网 | 超碰99热在线精品视频 | 窝窝影院午夜看片毛片 | 欧美成人猛片aaaaaaa | 野花日本手机观看大全免费3 | 中文字幕在线观看网站 | 久久免费电影 | 欧美性xxx18一20 | 97SE亚洲国产综合在线 | 老师我好爽再深一点老师好涨 | 91久久精品一区二区三区 | 超h高h肉h文教室生理课 | 又长又大又粗又硬3p免费视频 | 久久综合狠狠综合久久综合88 | 国色天香视频在线社区 | 男女牲交全过程免费播放 | 越南女 黑人 痛苦 大叫 | 久久久精品成人免费看 | 7723手机游戏破解版下载 | 免费观看成人毛片 | 在镜头里被CAO翻了H | 99久久免热在线观看 | 亚洲第一成年网站视频 | 丝袜足控免费网站xx91 | 久久午夜夜伦鲁鲁片无码免费 | 久久操韩国自偷拍 | 一个人免费视频在线观看高清频道 | 乌克兰16~18sex|