web-dev-qa-db-ja.com

MySql:大量のリソースがあるサーバーで頻繁にクラッシュする

Ubuntu 16.xでMySqlの最新バージョンを実行しているMySQLサーバーが、1日に1回または2回クラッシュし続けます。場合によっては、かなり早く(10分)自動的に修復されます。場合によっては、再起動してfsckを実行し、物事を再度実行する必要があります。

何が原因でしょうか?

これまでに試したこと:

  • RAM 1.5GBから5GBに増加。
  • ハードウェアのアップグレード:マザーボード、プロセッサ、RAM(DDR4))しかし、それは役に立たなかった(7年前のプロセッサを実行していたが、現在は第7世代Core I5を実行している)。
  • UFWファイアウォールをセットアップして、ボットがMySQLまたは他のサービスを攻撃することによって引き起こされていないことを確認します。
  • My.cnfで、innodb_buffer_pool_sizeを128MBから500MBに変更しました。 助けにはなりませんでしたが、まだ適切です
  • 私はmysqlcheck -u root -p --auto-repair --optimize --all-databasesを複数回実行しました。 役に立たなかった
  • My.cnfで、mysql max_connectionsを151から80に減らし、mysqlを再起動しました。 役に立たなかった
  • Apache MaxRequestWorkersを150から100に減らしました。役に立たなかった。それでもクラッシュします。
  • すでに1GBのスワップファイルがありました。 それを残します。
  • Apache2のログ、SysLog、その他適切であるように見えたが、私の目を引くものは何も見つからなかったログを通じて精査した。
  • サーバーをシャットダウンし、VMを別のドライブに移動しようとしましたが、ファイルエラーで失敗しました。
  • 私の最近の疑いは、これは不良ブロックが原因で発生していますが、不良ブロックを実行すると、25%完了時にクラッシュがトリガーされたようです。 fsckの実行中にこれが表示されます:fsckクリティカルメディアエラー、開発sda、セクター147306432

典型的なmysqlエラーログは次のとおりです。

2017-04-20T18:43:46.958430Z 0 [注] InnoDB:page_cleaner:意図された1000ミリ秒のループには11791ミリ秒かかりました。設定が最適でない可能性があります。 (その間、流されたインフルエンザ= 92および強制排除された= 0)
2017-04-20T18:44:11.989905Z 0 [注] InnoDB:page_cleaner:意図した1000ミリ秒のループには6822ミリ秒かかりました。設定が最適でない可能性があります。 (その間、flushed = 8およびevicted = 0になります。)
2017-04-20T18:44:49.145162Z 0 [注] InnoDB:page_cleaner:意図した1000ミリ秒のループに5021ミリ秒かかりました。設定が最適でない可能性があります。 (その間、インフルエンザhed = 0およびevicted = 0)
2017-04-20T18:45:22.322429Z 0 [注] InnoDB:page_cleaner:意図された1000ミリ秒のループには26338ミリ秒かかりました。設定が最適でない可能性があります。 (その間、流されたインフルエンザは10、退去は0でした。)
2017-04-20T18:45:53.926808Z 0 [注] InnoDB:page_cleaner:意図した1000ミリ秒のループに4510ミリ秒かかりました。設定が最適でない可能性があります。 (その間、インフルエンザhed = 0およびevicted = 0)
2017-04-20T18:46:03.097400Z 0 [注] InnoDB:page_cleaner:意図された1000ミリ秒のループに5384ミリ秒かかりました。設定が最適でない可能性があります。 (その間、インフルエンザhed = 13とevicted = 0になります。)
2017-04-20T18:46:39.247467Z 0 [注] InnoDB:page_cleaner:意図した1000ミリ秒のループに14848ミリ秒かかりました。設定が最適でない可能性があります。 (その間、流されたインフルエンザ= 8、排除された0)
2017-04-20T18:47:16.271672Z 0 [注] InnoDB:page_cleaner:意図した1000ミリ秒のループに29107ミリ秒かかりました。設定が最適でない可能性があります。 (その間、流されたインフルエンザ= 8、排除された0)
2017-04-20T18:47:53.669557Z 0 [注] InnoDB:page_cleaner:意図された1000ミリ秒のループには5969ミリ秒かかりました。設定が最適でない可能性があります。 (その間、インフルエンザhed = 37とevicted = 0)
2017-04-20T18:50:23.879411Z 0 [注] InnoDB:page_cleaner:意図した1000ミリ秒のループに37671ミリ秒かかりました。設定が最適でない可能性があります。 (その間、流されたインフルエンザ= 6と排除された0)
2017-04-20T18:55:07.190725Z 0 [警告]変更された制限:max_open_files:1024(要求された5000)2017-04-20T18:55:07.235759Z 0 [警告]変更された制限:table_open_cache:431(要求された2000)
2017-04-20T18:55:10.486670Z 0 [警告]暗黙のDEFAULT値を持つTIMESTAMPは非推奨になりました。 --explicit_defaults_for_times tampサーバーオプションを使用してください(詳細については、ドキュメントを参照してください)。
2017-04-20T18:55:11.563578Z 0 [注]/usr/sbin/mysqld(mysqld 5.7.17-0ubuntu0.16.04.2)プロセス24701として開始しています...
2017-04-20T18:55:21.979225Z 0 [注] InnoDB:PUNCH HOLEサポートが利用可能
2017-04-20T18:55:21.979250Z 0 [注] InnoDB:ミューテックスとrw_locksはGCCアトミックビルトインを使用します
2017-04-20T18:55:21.979253Z 0 [注] InnoDB:イベントミューテックスを使用2017-04-20T18:55:21.979256Z 0 [注] InnoDB:GCC組み込み__atomic_thread_fence()がメモリバリアに使用されます
2017-04-20T18:55:21.979259Z 0 [注] InnoDB:圧縮テーブルはzlib 1.2.8を使用します
2017-04-20T18:55:21.979262Z 0 [注] InnoDB:LinuxネイティブAIOを使用2017-04-20T18:55:22.004800Z 0 [注] InnoDB:プール数:1
2017-04-20T18:55:22.060762Z 0 [注] InnoDB:CPU crc32命令を使用する
2017-04-20T18:55:22.104584Z 0 [注] InnoDB:初期化バッファプール、合計サイズ= 128M、インスタンス= 1、チャンクサイズ= 128M
2017-04-20T18:55:24.184701Z 0 [注] InnoDB:バッファープールの初期化が完了しました
2017-04-20T18:55:24.210160Z 0 [注] InnoDB:mysqld実行ユーザーが承認されている場合、ページクリーナースレッドの優先度を変更できます。 setpriority()のmanページを参照してください。
2017-04-20T18:55:26.405242Z 0 [注] InnoDB:サポートされている最も高いファイル形式はバラクーダです。
2017-04-20T18:55:27.508456Z 0 [注] InnoDB:チェックポイントlsn 35288448161を過ぎてログスキャンが進行しました
2017-04-20T18:55:27.508478Z 0 [注] InnoDB:リカバリを実行中:ログシーケンス番号35288448170までスキャン
2017-04-20T18:55:27.508630Z 0 [注] InnoDB:リカバリを実行中:ログシーケンス番号35288448170までスキャン
2017-04-20T18:55:27.508634Z 0 [注意] InnoDB:データベースは正常にシャットダウンされませんでした!
2017-04-20T18:55:27.508637Z 0 [注] InnoDB:クラッシュリカバリを開始しています。
2017-04-20T18:56:16.516761Z 0 [注] InnoDB:一時テーブルスペースデータファイルを削除: "ibtmp1"
2017-04-20T18:56:16.516785Z 0 [注] InnoDB:一時テーブルの共有テーブルスペースを作成する
2017-04-20T18:56:16.516817Z 0 [注] InnoDB:ファイル './ibtmp1'のサイズを12 MBに設定します。ファイルを完全に物理的に書き込む。お待ちください ...
2017-04-20T18:56:16.621736Z 0 [注] InnoDB:ファイル './ibtmp1'のサイズは12 MBになりました。
2017-04-20T18:56:16.622203Z 0 [注] InnoDB:96 REDOロールバックセグメントが見つかりました。 96個のREDOロールバックセグメントがアクティブです。
2017-04-20T18:56:16.622211Z 0 [注] InnoDB:32の非REDOロールバックセグメントがアクティブです。
2017-04-20T18:56:16.622565Z 0 [注] InnoDB:パージの開始を待機しています
2017-04-20T18:56:16.672708Z 0 [注] InnoDB:5.7.17が開始されました。ログシーケンス番号35288448170
2017-04-20T18:56:16.672708Z 0 [注] InnoDB:page_cleaner:意図した1000ミリ秒のループに52462ミリ秒かかりました設定が最適でない可能性があります。 (その間、flushed = 0およびevicted = 0になります。)
2017-04-20T18:56:16.673192Z 0 [注] InnoDB:/ var/lib/mysql/ib_buffer_poolからバッファプールをロードしています
2017-04-20T18:56:16.702959Z 0 [注意]プラグイン「FEDERATED」は無効になっています。
2017-04-20T18:56:16.851553Z 0 [エラー]関数 'archive'はすでに存在します
2017-04-20T18:56:16.851568Z 0 [警告] soname 'ha_archive.so'の 'archive'という名前のプラグインをロードできませんでした。
2017-04-20T18:56:16.851574Z 0 [エラー]関数「ブラックホール」はすでに存在します
2017-04-20T18:56:16.851575Z 0 [警告] soname 'ha_blackhole.so'の 'blackhole'という名前のプラグインをロードできませんでした。
2017-04-20T18:56:16.851578Z 0 [エラー]関数 'federated'はすでに終了しています2017-04-20T18:56:16.851579Z 0 [警告] sonameを持つ 'federated'という名前のプラグインをロードできませんでした「ha_federated.so」。
2017-04-20T18:56:16.851582Z 0 [エラー]関数 'innodb'はすでに存在しています2017-04-20T18:56:16.851583Z 0 [警告] sonameを持つ 'innodb'という名前のプラグインをロードできませんでした「ha_innodb.so」。
2017-04-20T18:56:17.044733Z 0 [警告]次のSSLライブラリエラーのため、SSLのセットアップに失敗しました:SSLコンテキストは証明書と秘密鍵なしでは使用できません
2017-04-20T18:56:17.044754Z 0 [注意]サーバーのホスト名(バインドアドレス): '0.0.0.0';ポート:3306
2017-04-20T18:56:17.044761Z 0 [注]-「0.0.0.0」は「0.0.0.0」に解決されます。
2017-04-20T18:56:17.044779Z 0 [注]サーバーソケットはIP: '0.0.0.0'で作成されました。 2017-04-20T18:56:18.483575Z 0 [注]イベントスケジューラ:ロードされた0イベント
2017-04-20T18:56:18.483706Z 0 [注]「SELECT * FROM INFORMATION_SCHEMA.TABLES;」を実行しています非推奨のパーティションエンジンを使用してテーブルのリストを取得します。スタートアップオプション '--disable-partition-engine-check'を使用して、このチェックをスキップできます。
2017-04-20T18:56:18.483716Z 0 [注]非ネイティブパーティションテーブルのリストの始まり
2017-04-20T18:56:25.478293Z 0 [注] InnoDB:バッファープールのロードが170420 13:56:25に完了しました
2017-04-20T18:56:26.091240Z 0 [注意]非ネイティブパーティションテーブルのリストの終わり
2017-04-20T18:56:26.091423Z 0 [注意]/usr/sbin/mysqld:接続の準備ができています。バージョン: '5.7.17-0ubuntu0.16.04.2'ソケット: '/var/run/mysqld/mysqld.sock'ポート:3306(Ubuntu)
2017-04-20T18:56:26.155810Z 4 [エラー]/usr/sbin/mysqld:テーブル './example/wp_options'はクラッシュしているとマークされており、修復する必要があります
2017-04-20T18:56:26.155889Z 5 [エラー]/usr/sbin/mysqld:テーブル './example/wp_options'はクラッシュしているとマークされており、修復する必要があります
2017-04-20T18:56:26.156037Z 4 [警告]チェックテーブル: './ example/wp_options'
2017-04-20T18:56:35.816730Z 4 [エラー]/usr/sbin/mysqld:テーブル './example/wp_usermeta'はクラッシュしているとマークされており、修復する必要があります
2017-04-20T18:56:35.816875Z 4 [警告]チェックテーブル: './example/wp_usermeta'

4
EfficionDave
  • サーバーをシャットダウンし、VMを別のドライブに移動しようとしましたが、ファイルエラーで失敗しました。
  • 私の最近の疑いは、これは不良ブロックが原因で発生していますが、不良ブロックを実行すると、25%完了時にクラッシュがトリガーされたようです。 fsckの実行中にこれが表示されます:fsckクリティカルメディアエラー、開発sda、セクター147306432

DBのチューニングやその他のことに時間を無駄にしないでください。ドライブは間違いなく私にとって有罪です...

できる限りDBのダンプを作成し、低レベルのドライブをフォーマットして、クリーンなVMを起動してください。

3
Blag