溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux的最大文件限制數(shù)ulimit

發(fā)布時間:2020-07-05 14:09:45 來源:網(wǎng)絡 閱讀:649 作者:fackbooke 欄目:系統(tǒng)運維

Linux的最大文件限制數(shù)ulimit
一:說明
Linux對于每個用戶,系統(tǒng)限制其最大進程數(shù)。為提高性能,可以根據(jù)設備資源情況,設置各linux 用戶的最大進程數(shù)可以用ulimit -a 來顯示當前的各種用戶進程限制。

ulimit:顯示(或設置)用戶可以使用的資源的限制(limit),這限制分為軟限制(當前限制)和硬限制(上限),其中硬限制是軟限制的上限值,應用程序在運行過程中使用的系統(tǒng)資源不超過相應的軟限制,任何的超越都導致進程的終止。

[root@hadoop001 ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15088
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 15088
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

二:ulimit參數(shù)的描述
limited 不限制用戶可以使用的資源,但本設置對可打開的最大文件數(shù)(max open files)
和可同時運行的最大進程數(shù)(max user processes)無效
-a 列出所有當前資源極限
-c 設置core文件的最大值.單位:blocks
-d 設置一個進程的數(shù)據(jù)段的最大值.單位:kbytes
-f Shell 創(chuàng)建文件的文件大小的最大值,單位:blocks
-h 指定設置某個給定資源的硬極限。如果用戶擁有 root 用戶權限,可以增大硬極限。任何用戶均可減少硬極限
-l 可以鎖住的物理內(nèi)存的最大值
-m 可以使用的常駐內(nèi)存的最大值,單位:kbytes
-n 每個進程可以同時打開的最大文件數(shù)
-p 設置管道的最大值,單位為block,1block=512bytes
-s 指定堆棧的最大值:單位:kbytes
-S 指定為給定的資源設置軟極限。軟極限可增大到硬極限的值。如果 -H 和 -S 標志均未指定,極限適用于以上二者
-t 指定每個進程所使用的秒數(shù),單位:seconds
-u 可以運行的最大并發(fā)進程數(shù)
-v Shell可使用的最大的虛擬內(nèi)存,單位:kbytes

輸出的每一行由資源名字、(單位,ulimit命令的參數(shù))、軟限制組成。詳細解釋:
參數(shù) 描述
core file size core文件的最大值為100 blocks,
data seg size 進程的數(shù)據(jù)段可以任意大
file size 文件可以任意大
pending signals 最多有2047個待處理的信號
max locked memory 一個任務鎖住的物理內(nèi)存的最大值為32kB
max memory size 一個任務的常駐物理內(nèi)存的最大值
open files 一個任務最多可以同時打開1024的文件
pipe size 管道的最大空間為4096字節(jié)
POSIX message queues POSIX的消息隊列的最大值為819200字節(jié)
stack size 進程的棧的最大值為8192字節(jié)
cpu time 進程使用的CPU時間
max user processes 當前用戶同時打開的進程(包括線程)的最大個數(shù)為2047
virtual memory 沒有限制進程的最大地址空間
file locks 所能鎖住的文件的最大個數(shù)沒有限制

三:操作
下面我把某linux用戶的最大進程數(shù)設為10000個:
ulimit -u 10240
對于需要做許多 socket 連接并使它們處于打開狀態(tài)的 Java 應用程序而言,
最好通過使用 ulimit -n xx 修改每個進程可打開的文件數(shù),缺省值是 1024。
ulimit -n 4096 將每個進程可以打開的文件數(shù)目加大到4096,缺省為1024
其他建議設置成無限制(unlimited)的一些重要設置是:
數(shù)據(jù)段長度:ulimit -d unlimited
最大內(nèi)存大?。簎limit -m unlimited
堆棧大?。簎limit -s unlimited
CPU 時間:ulimit -t unlimited
虛擬內(nèi)存:ulimit -v unlimited
  
暫時地,適用于通過 ulimit 命令登錄 shell 會話期間。
永久地,通過將一個相應的 ulimit 語句添加到由登錄 shell 讀取的文件中,
即特定于 shell 的用戶資源文件,如:
1)、解除 Linux 系統(tǒng)的最大進程數(shù)和最大文件打開數(shù)限制:
vi /etc/security/limits.conf

添加如下的行

  • soft noproc 11000
  • hard noproc 11000
  • soft nofile 4100
  • hard nofile 4100
    說明:* 代表針對所有用戶,noproc 是代表最大進程數(shù),nofile 是代表最大文件打開數(shù)
    2)、讓 SSH 接受 Login 程式的登入,方便在 ssh 客戶端查看 ulimit -a 資源限制:
    a、vi /etc/ssh/sshd_config
    把 UserLogin 的值改為 yes,并把 # 注釋去掉
    b、重啟 sshd 服務:
    /etc/init.d/sshd restart
    3)、修改所有 linux 用戶的環(huán)境變量文件:
    vi /etc/profile
    ulimit -u 10000
    ulimit -n 4096
    ulimit -d unlimited
    ulimit -m unlimited
    ulimit -s unlimited
    ulimit -t unlimited
    ulimit -v unlimited
    保存后運行#source /etc/profile 使其生效

四:注意
將ulimit 值添加到/etc/profile文件中(適用于有root權限登錄的系統(tǒng))
進行配置的時候,
為了每次系統(tǒng)重新啟動時,都可以獲取更大的ulimit值,將ulimit 加入到/etc/profile 文件底部。
echo ulimit -n 65535 >>/etc/profile
source /etc/profile #加載修改后的profile
在生產(chǎn)中,當你不是root用戶的時候,你再次登錄的時候,你的ulimint的值還是沒有改變

解決辦法:
修改linux的軟硬件限制文件/etc/security/limits.conf.

[root@hadoop001 security]# pwd
/etc/security
[root@hadoop001 security]# ll
total 68
....
-rw-r--r--. 1 root root 2508 Oct 15 2017 limits.conf
....

在文件尾部添加如下代碼:

soft noproc 11000
hard noproc 11000
soft nofile 4100
hard nofile 4100

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI