【Linux】解決tomcat出現Toomanyopenfiles(開啟的檔案過多)問題
當用linux做高併發伺服器時,會遇到”Too many open files”的錯誤。
Linux是有檔案控制程式碼限制的(open files),而且Linux預設不是很高,一般都是1024,做高併發生產伺服器用其實很容易就達到這個數量。
轉載:https://blog.csdn.net/wjx_jasin/article/details/80663558
在linux中執行ulimit -a 即可查詢linux相關的引數,如下所示:
ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 63470
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
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) 102400
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
用ulimit命令是可以修改這些配置的
命令的格式:ulimit [-SHacdefilmnpqrstuvx] [limit]
中間的引數對應這要修改的專案。
預設最大開啟檔案數(open files)最大數為1024,修改:
ulimit -n 102400
最大值為655350
命令引數:
-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
unlimited 是一個特殊值,用於表示不限制
ulimit命令的特點:
1.只對當前tty(終端有效),若要每次都生效的話,可以把ulimit引數放到對應使用者的.bash_profile裡面;
2.ulimit命令本身就有分軟硬設定,加-H就是硬,加-S就是軟;
硬限制是可以在任何時候任何程式中設定 但硬限制只能由超級使用者提起
軟限制是核心實際執行的限制,任何程式都可以將軟限制設定為任意小於等於對程式限制的硬限制的值
3.預設顯示的是軟限制,如果執行ulimit命令修改的時候沒有加上的話,就是兩個引數一起改變生效;
永久設定
針對所有使用者的設定,在/etc/security/limits.conf檔案,其是可以對系統使用者、組進行cpu、檔案數等限制的,通過它可以針對某個使用者或全部進行限制。但不能超越系統的限制;
格式:
- soft noproc 102400
domain:表示範圍,
a user name #表示某個使用者
a group name #表示某個組
the wildcard * #表示所有使用者
the wildcard % #篩選過濾使用者
type:表示型別
soft表示可以超出,但只是警告
hard表示絕對不能超出
item:
- core – limits the core file size (KB)
- data – max data size (KB)
- fsize – maximum filesize (KB)
- memlock – max locked-in-memory address space (KB)
- nofile – max number of open file descriptors
- rss – max resident set size (KB)
- stack – max stack size (KB)
- cpu – max CPU time (MIN)
- nproc – max number of processes
- as – address space limit (KB)
- maxlogins – max number of logins for this user
- maxsyslogins – max number of logins on the system
- priority – the priority to run user process with
- locks – max number of file locks the user can hold
- sigpending – max number of pending signals
- msgqueue – max memory used by POSIX message queues (bytes)
- nice – max nice priority allowed to raise to values: [-20, 19]
- rtprio – max realtime priority
value:
unlimited表示不限制
如果想對所有使用者設定,也可以放在/etc/profile檔案裡面,下面是該檔案裡面的預設引數:
ulimit -S -c 0 > /dev/null 2>&1
參考:http://www.jianshu.com/p/23ee9db2a620
相關文章
- tomcat啟動 ssm專案出現亂碼的解決TomcatSSM
- 解決excel開啟.csv檔案亂碼問題Excel
- Excel開啟CSV檔案出現亂碼怎麼辦?Excel開啟csv檔案出現亂碼的解決方法Excel
- Excel開啟csv檔案出現亂碼的解決辦法Excel
- spring-cloud-搭建Eureka出現內建tomcat無法啟動的問題解決方案SpringCloudTomcat
- 解決.bashrc檔案每次開啟終端都需要source的問題
- 解決tomcat啟動控制檯輸出中文亂碼問題-ideaTomcatIdea
- Mac系統開啟dmg檔案出現“資源忙”的解決方法Mac
- 解決eclipse編輯jsp、js檔案時,經常出現卡死的問題EclipseJS
- 【Salesforce問題解決】Dataloader匯出的檔案亂碼或者問號的解決辦法Salesforce
- rsync同步檔案到遠端機器,卡住10多秒--問題解決過程
- 解決PHP匯出CSV檔案中文亂碼問題PHP
- 解決Linux無法開啟android模擬器問題LinuxAndroid
- kodbox讀取alist檔案失敗,問題解決過程
- Linux中常見的檔案讀寫錯誤問題及解決方法!Linux
- 關於Android檔案數過大,分包問題的解決辦法Android
- Python:Python中文寫入csv檔案出現亂碼問題的解決方案之一Python
- 解決Adobe Acrobat開啟PDF檔案時已損壞無法修復的問題BAT
- 解決Ubuntu配置nginx出現的問題UbuntuNginx
- MySQL直接匯出CSV檔案,並解決中文亂碼的問題MySql
- windows10系統開啟Ableton Live檔案出現已損壞的解決方法Windows
- cat開啟檔案正常vim開啟檔案中文亂碼解決方法
- 過濾器解決檔案上傳下載跨域問題過濾器跨域
- 雲伺服器:解決linux下zip檔案解壓亂碼問題伺服器Linux
- 編譯問題解決:LINK : fatal error LNK1104: 無法開啟檔案“*.dll”編譯Error
- win10開機提示啟動LenovoBatteryGaugepackage.dll時出現問題的解決方法Win10BATPackage
- SpringBoot 解決打包釋出後讀取不到 json 檔案問題Spring BootJSON
- Win10提示"由於啟動計算機時出現了頁面檔案配置問題"解決方法Win10計算機
- idea釋出web專案後Tomcat伺服器找不到該專案的問題及解決方法IdeaWebTomcat伺服器
- 修復PG.conf檔案出現的問題
- 徹底解決Hive小檔案問題Hive
- linux的啟動配置檔案inittab檔案詳解Linux
- 過多if - else 的問題, 以及策略模式 + 反射解決方法模式反射
- 解決Intellij IDEA中執行緩慢的問題,tomcat控制檯列印亂碼問題,國際化亂碼配置檔案亂碼解決IntelliJIdeaTomcat
- IDEA使用Tomcat伺服器出現亂碼問題排查過程IdeaTomcat伺服器
- 【日誌亂碼】解決Tomcat啟動控制檯亂碼問題Tomcat
- BurpSuite Pro2020開啟時一閃而過問題解決UI
- 用javaws開啟jnlp的時候,無法啟動解析檔案,這個問題怎麼解決?求大神Java