歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux ulimit和動態修改MySQL最大線程數限制

Linux ulimit和動態修改MySQL最大線程數限制   ulimit是限制進程對資源的使用,根據摩爾定律,高配的硬件現下也差不多白菜價 但軟件資源限制變化不大,特別是process/file,分別對應nproc和nofile nproc可用 ulimit -u 查詢;nofile可用 ulimit -n 查詢    這裡提一點,自內核2.6.32之後,引入/etc/security/limits.d/90-nproc.conf 這就意味/etc/security/limits.d/裡面的文件的配置會覆蓋/etc/security/limits.conf的配置   大都數軟硬限制的配置文件都位於:/etc/security/limits.conf    給個例子,比如修改fd(文件句柄)限制 * soft nofile NNNNN * hard nofile NNNNN    確認修改:ulimit -Hn;ulimit -Sn    有個朋友在生產環境遇到如下一個問題: [plain]  各位大師,求助:有沒有辦法, 不重啟 數據庫的情況下, 修改 mysql 用戶 最大的 nproc 這個參數!     報錯信息:Can't create a new thread (errno 11);   當然項目初期肯定會 修改 系統的ulimit,程序的連接數等等;   但這個是在應急情況下:  目前解決的方式是:    1、iptables 禁用某個ip連接   2、tcpkill 殺掉沒用的tcp 連接, 這樣連接上mysql 之後,修改 max_connection <  nproc 這個參數;      有沒有 在 不重啟數據庫,又能修改mysql 用戶最大的 nproc !     在設置MySQL的參數max_connections之外, 還需要考慮設置/etc/security/limits.conf文件的大小 MySQL是線程模式執行的, 其線程數也會被統計在nproc中, 這可能掩蓋或造成對此問題的誤判   處理方法:從Linux 2.6.32開始可以使用 echo -n "Max processes=204800:204800" > /proc/`pidof mysqld`/limits 來動態修改進程的系統資源limits信息,不用再因為修改這個而去重啟實例 這個方法可以解決遇到的MySQL最大進程數,非常簡單方便  
Copyright © Linux教程網 All Rights Reserved