2

私は最近、2 つのサーバー間で移行しました (最新のものはスペックが低い)。サーバーに負荷がかかっていなくても、常にフリーズします。以下は私のスペックです。

HP DL120G5 / インテル クアッドコア Xeon X3210 / 8GB RAM

フリー -m 出力:

             total       used       free     shared    buffers     cached
Mem:          7863       7603        260          0        176       5736
-/+ buffers/cache:       1690       6173
Swap:         4094        412       3681

ご覧のとおり、スワップには 412 MB の ysed があり、使用可能な物理 RAM のほぼ 80% があります。

これにより問題が発生するかどうかはわかりませんが、古いサーバーではほとんどスワップが使用されていなかったので、これは正しくないように思われます。

私は cPanel ライセンスを持っているので、サポートに連絡したところ、iowait が高いことがわかりました。はい、sar を実行したときに、60% を超えることもあれば、ほとんどの場合 20% になることもありますが、時には 60% または 70% に達することもあります。

それを診断する方法がよくわかりません。ドライブが遅いのではないかと疑っていたので、遅延が発生する可能性があるので、dd を使用してテストを実行しました。速度は 250 mb/s でした。ハードウェアに加えて、転送速度は問題ないと思います。真新しいはずです。

高負荷は通常、gzip または tar を使用してファイルを抽出する (cpanel アカウントをバックアップまたは復元する) ときに発生します。

言及する重要なことの 1 つは、mysql が CPU の 100% から 125% を使用していることを top が報告していることです。mysql プロセスをトレースすると、このエラーが継続的に発生し続けます。

setsockopt(376, SOL_IP, IP_TOS, [8], 4) = -1 EOPNOTSUPP (操作はサポートされていません)

それが何を意味するのかわかりませんし、グーグルで有用な情報も得られませんでした。

それが価値のあるWebホスティングサーバーであることを忘れていたので、Webホスティングの標準セットアップ(apache、php、mysqlなど)があります。

この問題を適切に診断して解決策を見つける方法、または考えられる原因は何ですか?

4

1 に答える 1

1

お気づきかもしれませんが、free -m出力には7603MiB(〜7.6GiB)USEDが表示され、無料ではありません。

メモリが不足していて、スワップが開始されたため、処理速度が大幅に低下します。ほとんどのアプリケーションは、仮想メモリがはるかに遅いディスクから来ていることに気付いていないため、システムは問題を説明するフィードバックなしで「ハング」しているように見える可能性があります。

あなたの説明から、制御を取り戻すために私が最初に行うプロセスkillはMysqlです。別のマシンからこのボックスにssh/rsh / telnet接続している場合は、から使用可能なコマンドラインを取得するために、そこからログインする必要がある場合がありますkill

何が起こっているのかについての私の最初の考え(仮説?)は...

  • MySQLは、このマシンが現在構成されているため、サポートされていないことを実行しようとしています。ライブラリが欠落しているか、環境変数が設定されていないか、いくつかのものがない可能性があります。

  • その操作はメモリを割り当てますが、失敗し、割り当てをクリーンアップしません。これがシェルスクリプトの場合は、trapメモリを解放してクリーンアップする関数を実行するイベントコマンドを最初に配置することで修正できます。

  • このコードは、失敗時に再試行を続けるように記述されているため、すべてのメモリを急速に消費します。シェルスクリプトの図に戻ると、trap関数は、本当に再試行を続行するかどうかを確認するように求めるメッセージも表示される場合があります。

完全な答えではありませんが、うまくいけば役立つでしょう。

于 2012-12-23T15:13:15.387 に答える