歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux ulimit和動態修改MySQL最大線程數限制

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

日期:2017/3/1 14:43:29   编辑:關於Linux
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