1. 程式人生 > >檢視/修改linux系統的最大連結數限制/檔案描述符限制/埠範圍限制/虛擬記憶體等

檢視/修改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