ulimit 命令詳解


ulimit 的簡介及常用參數

ulimit:顯示(或設置)用戶可以使用的資源的限制(limit),這限制分為軟限制(當前限制)和硬限制(上限),其中硬限制是軟限制的上限值,應用程序在運行過程中使用的系統資源不超過相應的軟限制,任何的超越都導致進程的終止。
參數 描述
ulimited 不限制用戶可以使用的資源,但本設置對可打開的最大文件數(max open files)
和可同時運行的最大進程數(max user processes)無效
-a 列出所有當前資源極限
-b 最大套接字緩沖區大小
-c 設置core文件的最大值.單位:blocks
-d 設置一個進程的數據段的最大值.單位:kbytes
-f Shell 創建文件的文件大小的最大值,單位:blocks
-h 指定設置某個給定資源的硬極限。如果用戶擁有 root 用戶權限,可以增大硬極限。任何用戶均可減少硬極限
-k 可以分配的最大 kqueue 數
-i 待處理信號的最大數量
-l 可以鎖住的物理內存的最大值
-m 可以使用的常駐內存的最大值,單位:kbytes
-n 每個進程可以同時打開的最大文件數
-p 設置管道的最大值,單位為block,1block=512bytes
-s 指定堆棧的最大值:單位:kbytes,Java程序需要適當的設置大一點
-S 指定為給定的資源設置軟極限。軟極限可增大到硬極限的值。如果 -H 和 -S 標志均未指定,極限適用於以上二者
-t 指定每個進程所使用的秒數,單位:seconds
-u 單個用戶可用的最大進程數
-v 進程可用的最大虛擬內存量,單位:kbytes
-x 文件鎖的最大數量
-T 最大線程數 

l臨時生效

ulimit -u 10240 # 用戶的最大進程數
ulimit -n 4096  #每個進程可打開的文件數
ulimit -d unlimited #數據段長度
ulimit -m unlimited #最大內存大小
ulimit -s unlimited  #堆棧大小
ulimit -t unlimited #CPU 時間
ulimit -v unlimited #虛擬內存

 

永久生效

修改所有 linux 用戶的環境變量文件

 vi /etc/profile.d/ulimit.sh # ~/.bashrc
    ulimit -u 10000
    ulimit -n 4096
    ulimit -d unlimited
    ulimit -m unlimited
    ulimit -s unlimited  
    ulimit -t unlimited
    ulimit -v unlimited

修改配置文件

# vi /etc/security/limits.conf
#<domain>        <type>  <item>  <value>

*               -       core             <value>
*               -       data             <value>
*               -       priority         <value>
*               -       fsize            <value>
*               soft    sigpending       <value> eg:57344
*               hard    sigpending       <value> eg:57444
*               -       memlock          <value>
*               -       nofile           <value> eg:1024
*               -       msgqueue         <value> eg:819200
*               -       locks            <value>
*               soft    core             <value>
*               hard    nofile           <value>
@<group>        hard    nproc            <value>
<user>          soft    nproc            <value>
%<group>        hard    nproc            <value>
<user>          hard    nproc            <value>
@<group>        -       maxlogins        <value>
<user>          hard    cpu              <value>
<user>          soft    cpu              <value>
<user>          hard    locks            <value>

<domain>可以是以下值

用戶名
組名,帶有@group語法
通配符*,用於默認條目
通配符%,也可以與%group語法一起使用,用於maxlogin限制

<type>可以有兩個值: 

soft:用於執行軟限制
hard:用於執行硬限制

<item>可以是以下之一

core- 限制核心文件大小 (KB)
data- 最大數據大小 (KB)
fsize- 最大文件大小 (KB)
memlock- 最大鎖定內存地址空間 (KB)
nofile- 最大打開文件數
rss- 最大駐留集大小 (KB)
stack- 最大堆棧大小 (KB)
cpu- 最大 CPU 時間 (MIN)
nproc- 最大進程數(見下面的注釋)
as- 地址空間限制 (KB)
maxlogins- 此用戶的最大登錄次數
maxsyslogins- 系統上的最大登錄數
priority- 運行用戶進程的優先級
locks- 用戶可以持有的最大文件鎖數
sigpending- 掛起信號的最大數量
msgqueue- POSIX 消息隊列使用的最大內存(字節)
nice- 允許提升到值的最大優先級:[-20, 19]
rtprio- 最大實時優先級 

注意事項

在 /etc/security/limits.conf 中設置 nproc 在 Red Hat Enterprise Linux 中無效,要在/etc/security/limits.d/90-nproc.conf文件中修改。 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM