mysqld使用cpu比率飆高
版主: 版主管理群
mysqld使用cpu比率飆高
我的論壇經常上線人數大約只有在20~50個人之間,通常httpd跟mysqld的CPU使用率都在個位數以下
但是一星期總有2~3次,論壇突然很慢幾近停頓的程度
我進shell觀看top
當時論壇上線人數不多,也看不出有特別的地方
最後都是把mysqld終止重開之後才恢復正常
請教各位大大,該從那邊著手?
但是一星期總有2~3次,論壇突然很慢幾近停頓的程度
我進shell觀看top
當時論壇上線人數不多,也看不出有特別的地方
最後都是把mysqld終止重開之後才恢復正常
請教各位大大,該從那邊著手?
-
- 星球公民
- 文章: 129
- 註冊時間: 2006-10-17 03:13
Re: mysqld使用cpu比率飆高
这个情况很可能是由搜尋引起, 最好在程式上做一些修改, 一是增大分詞的尺寸增加準確性, 二是限制級聯的條件而防止資料庫過載.
※伺服器主機:Intel Core2 酷睿™2 E6300, 升級到4GB RAM了
※主機作業系統:CentOS 4 Linux
※我的 phpBB 版本:phpBB3.0.?
※我的網址: 中文PHPBB
※主機作業系統:CentOS 4 Linux
※我的 phpBB 版本:phpBB3.0.?
※我的網址: 中文PHPBB
Re: mysqld使用cpu比率飆高
可能是由搜索引擎robot引起,有的沒依robots.txt規範的...將版區限制必須註冊後,才能觀看,也就是訪客不得進入版區,這樣可改善一下。
Re: mysqld使用cpu比率飆高
謝謝warkinger大大的指引,我去檢查一下robots.txtwarkinger 寫:可能是由搜索引擎robot引起,有的沒依robots.txt規範的...將版區限制必須註冊後,才能觀看,也就是訪客不得進入版區,這樣可改善一下。
Re: mysqld使用cpu比率飆高
我讀了michaelchain大大的這一篇大作michaelchain 寫:这个情况很可能是由搜尋引起, 最好在程式上做一些修改, 一是增大分詞的尺寸增加準確性, 二是限制級聯的條件而防止資料庫過載.
http://phpbb-tw.net/phpbb/posting.php?m ... 6&p=259302
請問所謂的程式上的修改是指哪裡呢?懇請指引方向,謝謝您!
Re: mysqld使用cpu比率飆高
沒依robots.txt規範,不是你的問題...是指對岸大陸的搜索引擎沒依robots.txt規範...如百度...等很多。krab 寫:謝謝warkinger大大的指引,我去檢查一下robots.txtwarkinger 寫:可能是由搜索引擎robot引起,有的沒依robots.txt規範的...將版區限制必須註冊後,才能觀看,也就是訪客不得進入版區,這樣可改善一下。
所以你去檢查robots.txt也沒用的。
直接限制非訪客,不得進入版區就好了。
說實在搜索引擎真的有時很要命,不停的刷阿刷的。
---------------
所謂的程式上的修改...天方夜談...這是寫給程式開發的人看的...於事無補
關於mysql吃CPU資源...這個好像用GOOGLE搜一下就有了,大陸那邊有人說是沒建立索引標籤,
你找看看主題及內容的資料表,有沒有建立索引標籤,我懶的找了,如果沒有,你就建一下看看。
至於那文章,你可用gooogle查查,很久之前看過,還有改什麼php.ini還是mysql的設定,加大快取什麼的,它教了三四招暫時解決方案。
--------
說實在啦,這是國外的程式,它們用英文測,當然問題少,因為26英文字是在字碼的最前面,不管你是用utf-8或big5...等,ASCII碼是在最前面,用搜索比較一定比其它非英系的快N倍,也少出問題。
一個中文字UTF-8要用3字元,BIG5用2字元,光搜索就吃重很多了,這問題我大約知道,但不知如何說明。
Re: mysqld使用cpu比率飆高
不曉得這位大大解決問題了沒? 如果還沒, 不妨到phpMyAdmin首頁裡面的"處理" (Processes)看看是否有一堆Sleep的指令。
有的話, 可考慮將php.ini中將mysql.allow_persistent設定給關閉, 這樣mysql就不會在那邊裝死了.
有的話, 可考慮將php.ini中將mysql.allow_persistent設定給關閉, 這樣mysql就不會在那邊裝死了.
Re: mysqld使用cpu比率飆高
謝謝wasabi大大,我去試試看。wasabi 寫:不曉得這位大大解決問題了沒? 如果還沒, 不妨到phpMyAdmin首頁裡面的"處理" (Processes)看看是否有一堆Sleep的指令。
有的話, 可考慮將php.ini中將mysql.allow_persistent設定給關閉, 這樣mysql就不會在那邊裝死了.
目前在後台設定超過某個閾值,就暫停搜索的功能因應。
Re: mysqld使用cpu比率飆高
也許是mysql版本的差異? php是cgi還是apache extension?
話說剛剛竹貓好像也中獎了呢... 秀出傳說中的phpBB 3的Too many connections問題
(phpbb.com官網有十幾頁關於這個的討論... orz)
話說剛剛竹貓好像也中獎了呢... 秀出傳說中的phpBB 3的Too many connections問題
(phpbb.com官網有十幾頁關於這個的討論... orz)
Re: mysqld使用cpu比率飆高
呵,不懂這部分wasabi 寫:也許是mysql版本的差異? php是cgi還是apache extension?
話說剛剛竹貓好像也中獎了呢... 秀出傳說中的phpBB 3的Too many connections問題
(phpbb.com官網有十幾頁關於這個的討論... orz)
是LAMP --with-apxs,這樣算是apache extension嗎?
Re: mysqld使用cpu比率飆高
最近升級到獨立式主機,本來想說用apache模組就不會出事,結果主機穩定的跑了半個月以後也跑出了too many connections錯誤。
初步判定是這些Sleep指令在搞鬼,但問題是php.ini裡面mysql.allow_persistent已經off了,怎麼還會出事? 好吧... 不管了,只好在my.cnf裡面加入interactive-timeout=300強迫在300秒後關閉這些連線。
目前看起來Sleep指令少多了,超過300秒後便會自動被幹掉,遇到類似問題的大大可以試試看。
ps. 判斷是不是cgi的方式很簡單,看看apache的設定,如果有LoadModule php5_module modules/libphp5.so一類的就是apache模組,如果有Action application/x-httpd-php "/php/php-cgi"一類的就是cgi。
pps. mysqld塞太多連線數時可能會出現的症狀跟此主題敘述得很像,mysqld會佔掉一堆記憶體,佔用一堆cpu%,甚至有可能造成資料表損壞(而且還無法修復!),有此現象的要特別留意喔。
初步判定是這些Sleep指令在搞鬼,但問題是php.ini裡面mysql.allow_persistent已經off了,怎麼還會出事? 好吧... 不管了,只好在my.cnf裡面加入interactive-timeout=300強迫在300秒後關閉這些連線。
目前看起來Sleep指令少多了,超過300秒後便會自動被幹掉,遇到類似問題的大大可以試試看。
ps. 判斷是不是cgi的方式很簡單,看看apache的設定,如果有LoadModule php5_module modules/libphp5.so一類的就是apache模組,如果有Action application/x-httpd-php "/php/php-cgi"一類的就是cgi。
pps. mysqld塞太多連線數時可能會出現的症狀跟此主題敘述得很像,mysqld會佔掉一堆記憶體,佔用一堆cpu%,甚至有可能造成資料表損壞(而且還無法修復!),有此現象的要特別留意喔。