檢視/修改linux系統的最大連結數限制/檔案描述符限制/埠範圍限制/虛擬記憶體等
一、修改最大連線數
1、檢視當前檔案描述符的限制數目的命令:
ulimit -n
2、修改檔案描述符的限制數目
2.1 臨時改變當前會話:
ulimit -n 65536
2.2 永久變更需要下面兩個步驟:
1) 修改/etc/security/limits.conf 檔案(注意帶著前面的*號),如下:
vi /etc/security/limits.conf
* soft nofile 570000
* hard nofile 570000
儲存退出後重新登入,其最大檔案描述符已經被永久更改了;但是需要經過下面的步驟2)之後才能生效。
2) 重新載入庫:
開啟檔案:
vi /etc/pam.d/login
在最後加上:
session required /lib64/security/pam_limits.so
即可
3.檢視和修改系統的最大開啟檔案限制
位置: /proc/sys/fs/file-max
檢視命令:
cat /proc/sys/fs/file-max
修改:
通過vi修改 /etc/sysctl.conf 檔案,在該檔案中加上:
fs.file-max=2000000
可以在令針對此引數 的修改一直生效,在該檔案中,修改完後執行命令:
sysctl -p
使修改立即生效,而無需重啟;
可使用下面兩條命令驗證一下修改是否成功:
cat /proc/sys/fs/file-max
或者
sysctl fs.file-max
4.修改nr_open
通過vi修改 /etc/sysctl.conf,在該檔案中加上:
fs.nr_open = 2000000
可以在令針對此引數 的修改一直生效,在該檔案中,修改完後執行命令:
sysctl -p
使修改立即生效,而無需重啟;
注意:
a. 所有程序開啟的檔案描述符數不能超過/proc/sys/fs/file-max
b. 單個程序開啟的檔案描述符數不能超過user limit中nofile的soft limit
c. nofile的soft limit不能超過其hard limit
d. nofile的hard limit不能超過/proc/sys/fs/nr_open
二、修改埠限制
主要是對核心引數sysctl.conf的優化,/etc/sysctl.conf 是用來控制linux網路的配置檔案,對於依賴網路的程式(如web伺服器和cache伺服器)非常重要,RHEL預設提供的最好調整。推薦配置(把下面內容新增進去):
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 = 22144 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 vm.overcommit_memory = 1 fs.file-max = 2000000 fs.nr_open = 2000000
這個配置參考於cache伺服器varnish的推薦配置和SunOne 伺服器系統優化的推薦配置。這裡有個對埠範圍的限制如果不做修改原始的返回只有2.8萬個port區間。
對上述記憶體引數的具體操作命令示例:
1)檢視埠範圍:
[[email protected] sub_client]# sysctl -a | grep range
net.ipv4.ip_local_port_range = 1024 65000
2)修改核心引數sysctl.conf,開啟該檔案,
vi /etc/sysctl.conf
如果檔案中有引數net.ipv4.ip_local_port_range的配置,則將其修改為:
net.ipv4.ip_local_port_range = 1024 65000
否則,直接加上這句話。
3)讓配置立即生效:
sysctl -p
另外,埠範圍引數net.ipv4.ip_local_port_range不要超過1024和65535,1024以下系統使用,65535以上設定會會提示失敗:
error: "Invalid argument" setting key "net.ipv4.ip_local_port_range"
三、檢視linux下虛擬記憶體情況
使用命令free,例如:
[[email protected] log_rd]# free
total used free shared buffers cached
Mem: 7950788 1144080 6806708 0 51432 832588
-/+ buffers/cache: 260060 7690728
Swap: 8093688 9764 8083924
-------------------------------------------------
在linux kernel 2.6.25之前通過ulimit -n(setrlimit(RLIMIT_NOFILE))設定每個程序的最大開啟檔案控制代碼數不能超過NR_OPEN (1024*1024),也就是100多w(除非重新編譯核心),而在25之後,核心匯出了一個sys介面可以修改這個最大值(/proc/sys/fs /nr_open).具體的changelog
相關推薦
檢視/修改linux系統的最大連結數限制/檔案描述符限制/埠範圍限制/虛擬記憶體等
一、修改最大連線數 1、檢視當前檔案描述符的限制數目的命令: ulimit -n 2、修改檔案描述符的限制數目 2.1 臨時改變當前會話: ulimit -n 65536 2.2 永久變更需要下面兩個步驟: 1) 修改/etc/security/limits.c
linux系統最大TCP連線數限制
本部落格為轉載,原文請參見<a href="http://blog.51cto.com/jschu/1755279">http://blog.51cto.com/jschu/1755279</a> web伺服器和cache伺服器,高併發下,socke
關於linux系統最大程序數和單程序最大執行緒數的測試
我的系統:RedHat企業7 64位 記憶體6G ulimit -a檢視用於shell啟動程序所佔用的資源預設設定 一.最大程序數 1.使用命令ulimit -u檢視軟限制,我的為7807 /etc/security/limits.conf檢視硬限制
[MySQL] 允許遠端訪問並設定最大連結數
------------------------------------------------ 允許遠端訪問 ----------------------------------------------------------- MySQL -uroot -p1234
sql server- 檢視程序池預設最大連線數和資料當前連線數
1、獲取SQL Server允許同時使用者連線的最大數 SELECT @@MAX_CONNECTIONS 2、獲取當前指定資料庫的連線資訊 SELECT * FROM master.dbo.sysprocesses WHERE dbid
Linux高效能伺服器程式設計——程序間 傳遞檔案描述符
問題的提出 一:fork()之後,父程序中開啟的檔案描述符,在子程序中仍然處於開啟狀態。所以從父程序——》子程序(傳遞檔案描述符)很方便。值得注意的是傳遞一個檔案描述符並不是傳遞一個檔案描述符的值。 二:那麼怎樣吧子程序中開啟的檔案描述符傳遞給父程序呢?通俗的說:
Linux子程序繼承父程序的檔案描述符
/* tcp_server.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <sys/type
linux修改用戶最大線程數
/etc 技術分享 分享圖片 con conf 設置 limits linux下 img linux下普通用戶最大允許使用線程數為1024; 但是並發量大時,該1024配置項遠遠不夠滿足我們的需要,我們可以修改/etc/security/limits.d/90-npro
修改系統及nginx程序最大訪問數,解決高並發問題
解決高並發 、修改系統及nginx程序修改最大訪問數。先更改內核參數查看: ulimit -a查看此行open files (-n) 140000進入系統配置文件進行修改:[root@bogon ~]#vi /etc/systemd/system.conf#De
MYSQL 檢視最大連線數和修改最大連線數
MySQL檢視最大連線數和修改最大連線數 1、檢視最大連線數show variables like '%max_connections%';2、修改最大連線數set GLOBAL max_connections = 200; 以下的文章主要是向大家介紹的是MySQL最大連線數的修改,我們大家
Linux 調優方案, 修改最大連線數(ulimit命令)
Linux對於每個使用者,系統限制其最大程序數。為提高效能,可以根據裝置資源情況,設定各linux 使用者的最大程序數 可以用ulimit -a 來顯示當前的各種使用者程序限制。 下面我把某linux使用者的最大程序數設為10000個: ulimit -u 1
linux 下修改最大連線數的辦法
1、修改使用者程序可開啟檔案數限制 在Linux平臺上,無論編寫客戶端程式還是服務端程式,在進行高併發TCP連線處理時,最高的併發數量都要受到系統對使用者單一程序同時可開啟檔案數量的限制(這是因為系統為每個TCP連線都要建立一個socket控制代碼,每個socket控制代碼
最快速度檢視windows系統 IIS 併發連線數和共享資料夾最大連線數的方法
windows系統 版本分伺服器版和家用版/企業版,比如 windows 7 是家用版/企業版,對應windows 2008/2008R2就是伺服器版。 家用版/企業版的共享資料夾連線和IIS都有最大限制,當同時訪 問人數過多,會導致其他人連不上目標機器。 於
ORACLE檢視與修改最大遊標數
1、檢視ORACLE最大遊標數 C:/Documents and Settings/Administrator>sqlplus "sys/[email protected] as sysdba" (sys以dba登入test151服務)
oracle檢視最大程序數和修改最大連線數
1. 用sys登入sql plus: usename: sys as sysdba password: ****2. 檢視最大連線數: select value from V$parameter where name="processes";3. 檢視當前連線數
oracle檢視和修改最大連線數
第一步,在cmd命令列,輸入sqlplus 或者直接在plsql中開啟command window第二步,根據提示輸入使用者名稱與密碼1. 檢視processes和sessions引數SQL> show parameter processes NAME
ORACLE 檢視當前連線數、修改最大連線數相關SQL或命令
SQL: 1. 檢視當前的資料庫連線數 select count(*) fromv$process select count(*) from v$process where program=‘Oracle.EXE(SHAD)’; 2. 檢視資料庫允許的最大連線數 s
linux mysql修改最大連線數
檢視當前資料庫連線>mysqladmin -uroot -pxxxxx processlist +--------+------+----------------------+----------+---------+------+-------+----------
檢視oracle使用者資料庫連線數(檢視修改資料庫最大連線數等)
一、檢視oracle使用者資料庫連線數 1、查詢oracle的連線數 select count(*) from v$session; 2、查詢oracle的併發連線數 select count(*) from v$session where status='ACTIVE
關於MongoDB最大連線數的檢視與修改
[[email protected] mongodb-linux-x86_64-2.4.1]# ./bin/mongod --dbpath=/root/db --maxConns=2000Wed Apr 3 11:06:21.905 [initandlisten] MongoDB starting