請求我已經建立了數據庫維基百科其中:HTTP 500(內部服務器錯誤)通過Apache
- 一(1)主機運行
mysqld
,運行數據庫;我已經安裝了mariadb-server
包。 - 我已經在4個不同的表(頁面,文本,修訂版,重定向;每個有1600萬行,後者約700萬)中存儲了1600萬頁。尺寸爲
/var/lib/mysql/ibdata1
:88 GiB。 - 通過http服務器(
apache2
),使用MediaWiki提供請求,就像在wikipedia.org中一樣。 - 在另一臺機器上的一個單線程worker通過http向數據庫發送了2.31億次請求,超時時間爲200-500毫秒;許多單個請求超時,即使在200毫秒。
問題是,由於「HTTP 500」(內部服務器錯誤),大多數請求未提供服務。一些請求(100-200)沒有問題,但是當啓動請求的請求數超過1'000時,我在大多數情況下會收到內部服務器錯誤。
這是一個正在進行的實驗過程中的快照:
- 38086請求:
HTTP 200 OK
。 - 1200226請求:
HTTP 500 Internal Server Error
- 74280請求:超時
在這裏特別地,是從/var/log/apache2/error.log
小摘錄mysqld
服務器上:
[Mon Apr 18 02:42:43.492142 2016] [:error] [pid 70738] [client 172.16.96.23:41031] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/wikiadmin/mediawiki-1.26.2/includes/cache/LocalisationCache.php on line 262
[Mon Apr 18 02:42:53.184116 2016] [:error] [pid 70665] [client 172.16.96.23:57976] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/wikiadmin/mediawiki-1.26.2/includes/parser/Preprocessor_DOM.php on line 1123
[Mon Apr 18 02:43:19.389313 2016] [:error] [pid 70745] [client 172.16.96.6:38824] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/wikiadmin/mediawiki-1.26.2/includes/Sanitizer.php on line 1087
[Mon Apr 18 02:43:22.188122 2016] [:error] [pid 69251] [client 172.16.96.6:55869] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/wikiadmin/mediawiki-1.26.2/includes/title/MediaWikiTitleCodec.php on line 377
[Mon Apr 18 02:43:38.404148 2016] [:error] [pid 70919] [client 172.16.96.6:60524] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/wikiadmin/mediawiki-1.26.2/includes/parser/Preprocessor_DOM.php on line 1124
[Mon Apr 18 02:43:42.188143 2016] [:error] [pid 69534] [client 172.16.96.6:51519] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/wikiadmin/mediawiki-1.26.2/includes/parser/Preprocessor_DOM.php on line 1119
[Mon Apr 18 02:42:23.004116 2016] [:error] [pid 70550] [client 172.16.96.23:35259] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/wikiadmin/mediawiki-1.26.2/includes/Message.php on line 260
我期待的想法如何從服務器端改善這種情況服務更多請求。作爲MySQL和數據庫的全新新手,我已經開展了我的研究並提出了不同的建議,例如(i)數據庫分片; (ii)MySQL集羣等;但是,由於存在很多提案,我不確定我應該採取哪個方向。
是MySQL問題還是HTTP/MediaWiki問題?
結果並不令人意外。 – e4c5