MySQL「Sort aborted」エラー

使用頻度の低いサーバーで下記のエラーが上がっていました

$ tail /var/log/mysqld.log
260422  2:59:54 [ERROR] /usr/libexec/mysqld: Sort aborted
260422  3:31:42 [ERROR] /usr/libexec/mysqld: Sort aborted
260422  3:41:22 [ERROR] /usr/libexec/mysqld: Sort aborted
260422  3:44:41 [ERROR] /usr/libexec/mysqld: Sort aborted

エラー内容ですが、Sort aborted ですので、該当サーバー上で実行されている MySQL(MariaDB)において、複雑なクエリやメモリ不足、あるいは sort_buffer_size の不足などでソート処理が中断された場合に発生します

調査ステップ:まずはシステムリソースの確認

メモリ不足が疑わしいのでメモリを確認しましたが、メモリ不足を思われせる値ではありません

$ free -m
             total       used       free     shared    buffers     cached
Mem:         11912       8447       3464          0        245       6733
-/+ buffers/cache:       1468      10443
Swap:         4095          0       4095

「Sort aborted」が起こる主な原因

メモリに余裕がある場合、以下の「MySQL内部の設定・制限」が原因である可能性が高い。頻発しなければ様子見で大丈夫無ことが多いのでしばらく様子を見ることにする

  1. sort_buffer_size の超過
    • 1クエリに割り当てられるソート用バッファが、実際のデータ量に対して小さすぎる場合に発生。
  2. 一時ファイル(tmpdir)の容量不足
    • メモリ内でソートしきれない場合、ディスク上の /tmp を使用するが、そこが溢れているケース。
  3. クライアント側のタイムアウト
    • 処理に時間がかかりすぎて、呼び出し側のプログラム(PHP等)が先にコネクションを切断した。

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です