【LINUX】linux ulimit調優
1,說明:
ulimit用於shell啟動程式所佔用的資源.
2,類別:
shell內建命令
3,語法格式:
ulimit [-acdfHlmnpsStvw] [size]
4,引數介紹:
-H 設定硬體資源限制.
-S 設定軟體資源限制.
-a 顯示當前所有的資源限制.
-c size:設定core檔案的最大值.單位:blocks
-d size:設定資料段的最大值.單位:kbytes
-f size:設定建立檔案的最大值.單位:blocks
-l size:設定在記憶體中鎖定程式的最大值.單位:kbytes
-m size:設定可以使用的常駐記憶體的最大值.單位:kbytes
-n size:設定核心可以同時開啟的檔案描述符的最大值.單位:n
-p size:設定管道緩衝區的最大值.單位:kbytes
-s size:設定堆疊的最大值.單位:kbytes
-t size:設定CPU使用時間的最大上限.單位:seconds
-v size:設定虛擬記憶體的最大值.單位:kbytes
5.舉例
在Linux下寫程式的時候,如果程式比較大,經常會遇到“段錯誤” (segmentation fault)這樣的問題,這主要就是由於Linux系統初始的堆疊大小(stack size)太小的緣故,一般為10M。我一般把stack size設定成256M,這樣就沒有段錯誤了!命令為:
ulimit -s 262140
如果要系統自動記住這個配置,就編輯/etc/profile檔案,在 “ulimit -S -c 0 > /dev/null 2>&1”行下,新增“ulimit -s 262140”,儲存重啟系統就可以了
Linux對於每個使用者,系統限制其最大程式數。為提高效能,可以根據裝置資源情況,
設定各linux 使用者的最大程式數,下面我把某linux使用者的最大程式數設為10000個:
ulimit -u 10000
對於需要做許多 socket 連線並使它們處於開啟狀態的 Java 應用程式而言,
最好透過使用 ulimit -n xx 修改每個程式可開啟的檔案數,預設值是 1024。
ulimit -n 4096 將每個程式可以開啟的檔案數目加大到4096,預設為1024
其他建議設定成無限制(unlimited)的一些重要設定是:
資料段長度:ulimit -d unlimited
最大記憶體大小:ulimit -m unlimited
堆疊大小:ulimit -s unlimited
CPU 時間:ulimit -t unlimited
虛擬記憶體:ulimit -v unlimited
我們公司伺服器需要調整ulimit的stack size 引數調整為unlimited 無限,使用ulimit -s unlimited時只能在當時的shell見效,重開一個shell就失效了。。於是得在/etc/profile 的最後面新增ulimit -s unlimited 就可以了,source /etc/profile使修改檔案生效。
PS:如果你碰到類似的錯誤提示:
ulimit: max user processes: cannot modify limit: 不允許的操作
ulimit: open files: cannot modify limit: 不允許的操作
為啥root使用者是可以的?普通使用者又會遇到這樣的問題?
看一下/etc/security/limits.conf大概就會明白。
linux對使用者有預設的ulimit限制,而這個檔案可以配置使用者的硬配置和軟配置,硬配置是個上限。
超出上限的修改就會出“不允許的操作”這樣的錯誤。
在limits.conf加上
* soft noproc 10240
* hard noproc 10240
* soft nofile 10240
* hard nofile 10240
就是限制了任意使用者的最大執行緒數和檔案數為10240。
=============================================
轉自:http://blog.haohtml.com/archives/6940
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2134673/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux ulimit使用LinuxMIT
- linux----ulimit 限制LinuxMIT
- linux ulimit設定LinuxMIT
- linux_ulimit_open filerLinuxMIT
- linux/unix ulimit命令詳解LinuxMIT
- Linux系統調優Linux
- linux調優效能命令Linux
- Linux核心引數調優Linux
- linux 效能調優引數Linux
- (1)Linux效能調優之Linux程式管理Linux
- Linux 指令篇:系統設定--ulimitLinuxMIT
- Linux下ulimit、find命令使用者LinuxMIT
- Linux效能調優命令之freeLinux
- Linux系統調優介紹Linux
- Linux系統效能調優技巧Linux
- (3)Linux效能調優之Linux檔案系統Linux
- linux線上環境jetty調優方案LinuxJetty
- Linux效能及調優指南:程式管理Linux
- linux調優的一點總結Linux
- (2)Linux效能調優之Linux記憶體體系Linux記憶體
- Linux下ulimit命令的詳細使用介紹LinuxMIT
- Linux伺服器效能分析與調優Linux伺服器
- linux 效能監控分析以及調優(top)Linux
- Linux系統效能調優之效能分析Linux
- Linux核心調優部分引數說明Linux
- linux系統引數調優全解析Linux
- 在Linux中,umask 和 ulimit有什麼區別?LinuxMIT
- linux系統關於kernel.sem調優Linux
- Linux工具效能調優系列二:buffer和cacheLinux
- 20個Linux伺服器效能調優技巧Linux伺服器
- Linux下vmstat調優工具的深入分析Linux
- Linux優化之IO子系統監控與調優Linux優化
- Linux系統優化部分核心引數調優中文註釋Linux優化
- Linux效能調優從最佳化思路說起Linux
- Linux常用的一些核心引數(調優)Linux
- 在Linux中,如何進行系統效能調優?Linux
- Linux雲端計算架構-系統調優【CPU、IO、網路、核心引數調優】Linux架構
- suse linux 10_su - oracle報ulimit錯誤-cannot modify limit:LinuxOracleMIT