公司日本租用了阿里云機器 本身有網絡延遲,有一臺Linux服務器專門用來跑游戲服務,由于歷史原因,加上玩家數量的劇增,導致經常出現大量的sleep進程;
創新互聯公司于2013年開始,是專業互聯網技術服務公司,擁有項目網站制作、成都網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元東坡做網站,已為上家服務,為東坡各地企業和個人服務,聯系電話:18980820575沾上一個腳本用來殺掉sleep進程:
while : do n=`mysql -uroot -pfuckdba processlist | grep -i sleep | wc -l` date=`date +%Y%m%d\[%H:%M:%S]` echo $n if [ "$n" -gt 10 ] then for i in `mysqladmin -uroot -pfuckdba processlist | grep -i sleep | awk '{print $2}'` do mysqladmin -uroot -pfuckdba kill $i done echo "sleep is too many i killed it" >> /root/tmp/sleep.log echo "$date : $n" >> /root/tmp/sleep.log fi sleep 120 #每隔120 秒 執行一次 doneMySQL服務器所支持的大連接數是有上限的,因為每個連接的建立都會消耗內存,因此我們希望客戶端在連接到MySQL Server處理完相應的操作后,應該斷開連接并釋放占用的內存。如果你的MySQL Server有大量的閑置連接,他們不僅會白白消耗內存,而且如果連接一直在累加而不斷開,最終肯定會達到MySQL Server的連接上限數,這會報'too many connections'的錯誤。對于wait_timeout的值設定,應該根據系統的運行情況來判斷。在系統運行一段時間后,可以通過show processlist命令查看當前系統的連接狀態,如果發現有大量的sleep狀態的連接進程,則說明該參數設置的過大,可以進行適當的調整小些。
經查詢發現原來mysql沒有進行過優化,還是原來的默認值:28800(即8個小時)
編輯 /etc/my.cnf,在mysqld 下 新增 timeout參數,設置為120秒,如下:
【mysqld】
wait_timeout=120
interactive_timeout=120
注意:要同時設置interactive_timeout和wait_timeout才會生效。
經過測試服測試完全沒問題,重啟一下mysql 生效 即可!當然線上的就比較坑了,由于服務器第一天租到,第二天就開始上線沒來得及優化,很多臺里面只有一條,執行命令比較慢,就等著下次替換文件重啟了。
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文標題:讓那些mysql里睡覺的進程,悄悄的死去吧。-創新互聯
文章URL:http://m.kartarina.com/article16/cdcsdg.html
成都網站建設公司_創新互聯,為您提供動態網站、面包屑導航、品牌網站建設、企業網站制作、外貿建站、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯