linux 連接數 限制,linux設置最大連接數

1.最大文件打開數限制

查看前用戶進程打開的文件數限制,命令行執行:

ulimit -n

默認1024.

這表示當前用戶的每個進程最多允許同時打開1024個文件,這1024個文件中還得除去每個進程必然打開的標準輸入,標準輸出,標準錯誤,服務器監聽 socket,進程間通訊的unix域socket等文件,那么剩下的可用于客戶端socket連接的文件數就只有大概1024-10=1014個左右。也就是說缺省情況下,基于Linux的通訊程序最多允許同時1014個TCP并發連接。

對于想支持更高數量的TCP并發連接的通訊處理程序,就必須修改Linux對當前用戶的進程同時打開的文件數量的軟限制(soft limit)和硬限制(hardlimit)。其中軟限制是指Linux在當前系統能夠承受的范圍內進一步限制用戶同時打開的文件數;硬限制則是根據系統硬件資源狀況(主要是系統內存)計算出來的系統最多可同時打開的文件數量。通常軟限制小于或等于硬限制。

vim /etc/security/limits.conf

limits.conf添加如下配置:

# 修改文件數

* soft nofile 10240

* hard nofile 10240

# 修改進程數

* soft noproc 60000

* hard noproc 60000

可用’*'號表示修改所有用戶的限制;如果只針對某用戶,可指定了要修改哪個用戶的打開文件數限制,即:user1 soft nofile 10240;soft或hard指定要修改軟限制還是硬限制;10240則指定了想要修改的新的限制值,即最大打開文件數(請注意軟限制值要小于或等于硬限制)。

vim /etc/pam.d/login

添加:

session required /lib/security/pam_limits.so

這是告訴Linux在用戶完成系統登錄后,應該調用pam_limits.so模塊來設置系統對該用戶可使用的各種資源數量的最大限制(包括用戶可打開的最大文件數限制),而pam_limits.so模塊就會從/etc/security/limits.conf文件中讀取配置來設置這些限制值。

2.修改profile

vim /etc/profile

profile文件添加:

ulimit -SHn 64000

命令行執行生效:

source /etc/profile

3.內核參數sysctl.conf的優化

/etc/sysctl.conf 是用來控制linux網絡的配置文件,對于依賴網絡的程序(如web服務器和cache服務器)非常重要.

先備份原配置:

cp /etc/sysctl.conf /etc/sysctl.conf.bak

然后編輯sysctl.conf:

vim /etc/sysctl.conf

添加:

net.ipv4.ip_local_port_range = 1024 65535

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.tcp_rmem = 4096 87380 16777216

net.ipv4.tcp_wmem = 4096 65536 16777216

net.ipv4.tcp_fin_timeout = 10

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_window_scaling = 0

net.ipv4.tcp_sack = 0

net.core.netdev_max_backlog = 30000

net.ipv4.tcp_no_metrics_save = 1

net.core.somaxconn = 10240

net.ipv4.tcp_syncookies = 0

net.ipv4.tcp_max_orphans = 262144

net.ipv4.tcp_max_syn_backlog = 262144

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2

其中:

net.ipv4.ip_local_port_range = 1024 65535

如果按上述端口范圍進行設置,則理論上單獨一個進程最多可以同時建立60000多個TCP客戶端連接。

net.ipv4.ip_conntrack_max = 20000

如果按上述參數進行設置,則理論上單獨一個進程最多可以同時建立20000多個TCP客戶端連接。

選一個設置即可。

修改完畢后,執行下面命令,使配置立即生效,或者重啟:

sysctl -p /etc/sysctl.conf #或者sysctl -p

sysctl -w net.ipv4.route.flush=1

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

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

相關文章

什么叫網絡抖動

網絡抖動: 網上說法是指網絡中的延遲是指信息從發送到接收經過的延遲時間,一般由傳輸延遲及處理延遲組成; 而抖動是指最大延遲與最小延遲的時間差,如最大延遲是20毫秒,最小延遲為5毫秒,那么網絡抖動就是15毫…

硬件知識:電腦組裝機必備的知識梳理

今天小編給大家分享電腦組裝機必備的知識,希望對大家能有所幫助! 確實機箱內部的硬件連接中,大多數線材的插頭和插孔都是獨特的,比如主板的204pin,CPU的44pin都不能通用,多接口中方口和圓口的搭配也不會導致…

多態、抽象類

多態、抽象類 多態: 多態:多種形式; 多態是指一個對象有多種形式的能力; 多態描述:相同的行為;不同的實現; 多態分類: 靜態多態:程序在編譯時,系統就能決定調…

android 首頁布局變換,Android XML布局與View之間的轉換

Android的布局方式有兩種,一種是通過xml布局,一種是通過java代碼布局,兩種布局方式各有各的好處,當然也可以相互混合使用。很多人都習慣用xml布局,那xml布局是如何轉換成view的呢?本文從源碼的角度來簡單分…

C++的ORM工具比較

用過Java的都知道SSH框架,特別對于數據庫開發,Java領域有無數的ORM框架,供數據持久層調用,如Hibernate,iBatis(現在改名叫MyBatis),TopLink,JDO,JPA……非常方便實用。用過C#的同學們…

電腦技巧:Win10自帶存儲感知功能給電腦磁盤瘦身

今天給大家分享Win10自帶存儲感知功能給電腦磁盤瘦身功能,希望對大家能有所幫助!1、什么是存儲感知Win10存儲感知功能屬于Win10操作系統的一大亮點,自帶有AI的存儲感知功能發揮其磁盤清理功能,它可以在操作系統需要的情況下清理不…

線程的優先級

setPriority(); 設置線程的優先級Thread類里面的 MIN_PRIORITY 1 表示最小優先級 NORM_PRIORITY 5 表示默認優先級 MAX_PRIORITY 10 表示最大優先級

電腦存儲:A盤、B盤知識介紹,為何總是電腦磁盤從C盤開始

??作者主頁:IT技術分享社區 ??作者簡介:大家好,我是IT技術分享社區的博主,從事C#、Java開發九年,對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽: 數據庫領域優質創作者🏆&#x…

使用axis發送xml報文,返回并解析報文實例

前段時間剛好學了一點webservice,因此想和大家分享一下我的成果,因為能力原因,只能做個小實例,望大家見諒! 此實例的思路是:(1)用String類型構造好需要發送的報文;(2)使用axis調用服…

某游戲在華為鴻蒙,華為鴻蒙系統運行安卓游戲出現新狀況!安卓換皮論被徹底打臉?...

雖然華為鴻蒙系統已經經過幾輪的測試,準備在6月份大規模推送正式版本了,但現在依然還有一些雜音不絕于耳。最主要的爭議點還是老生常談的”鴻蒙系統到底是不是安卓系統的換皮“。支持鴻蒙系統安卓換皮的一方拿出過不少證據,比如安裝包還是APK…

java為什么還需要分布式鎖?

什么是鎖? 在單進程的系統中,當存在多個線程可以同時改變某個變量(可變共享變量)時,就需要對變量或代碼塊做同步,使其在修改這種變量時能夠線性執行消除并發修改變量。 而同步的本質是通過鎖來實現的。為了…

電腦技巧:電腦插上U盤就死機或重啟原因和解決辦法

大家平時將u盤或其他可移動設備連接電腦插口的時候,不少電腦小白都碰到過操作系統自動重啟甚至出現電腦死機的尷尬情況。針對u盤等外部設備連接引起的電腦死機問題,我們應該根據具體問題具體分析,找到原因就可以解決掉。接下來小編帶大家看看…

使用UGUI繪制自定義幾何圖形

本文展示了如何使用UGUI繪制矩形,同理可繪制其他幾何圖形。 UGUI的渲染體系,簡單來說所有的控件和可顯示的元素都是Graphic。Graphic持有一個CanvasRenderer,通過SetVertices設置頂點,最終完成繪制。 舉例來說,Image控…

android t類型參數,android – Kotlin屬性:“屬性的類型參數必須在其接收器類型中使用”...

我有以下簡單的Kotlin擴展功能:// Get the views of ViewGroupinline val ViewGroup.views: Listget() (0..childCount - 1).map { getChildAt(it) }// Get the views of ViewGroup of given typeinline fun ViewGroup.getViewsOfType() : List {return this.views…

電腦技巧:分享七個解決煩人的彈窗廣告的小技巧

目錄 1、及時卸載用不到的垃圾軟件 2、修改軟件設置(關閉不需要的資訊、廣告) 3、開機啟動項中禁用不需要的應用 4、刪除彈窗廣告程序 5、提高操作系統阻止級別 6、禁止彈窗廣告的任務計劃 7、安裝火絨殺毒軟件設置彈窗廣告攔截 最后總結 很多朋友經常會…

MySQL+Amoeba實現數據庫主從復制和讀寫分離

MySQL讀寫分離是在主從復制的基礎上進一步通過在master上執行寫操作,在slave上執行讀操作來實現的。通過主從復制,master上的數據改動能夠同步到slave上,從而保持了數據的一致性。實現數據的讀寫分離能帶來的好處有: 增加物理服務…

從操作系統層面描述線程的五種狀態

[初始狀態] 僅是在語言層面創建 了線程對象, 還未與操作系統線程關聯 [可運行狀態] (就緒狀態) 指該線程已經被創建(與操作系統線程關聯), 可以由CPU調度執行 [運行狀態] 指獲取了CPU時間片運行中的狀態 當CPU時間片用完,會從[運行狀態]轉…

html桌面圖標樣式,如何更改圖標樣式,換桌面圖標的方法

打開桌面,桌面上擺放了放多程序的快捷方式,我們每天打開電腦最先接觸的就是這些快捷方式圖標。時間長了,是不是感覺乏味了。可以換一換。比如,在我的電腦桌面上有這樣一個圖標,那怎樣更改桌面圖標?下面&…