私の現在のサーバーには 12 個のコアと 96 GB の RAM があります。しかし、MYSQL クエリが原因で、サーバーの使用率が常に最大 100% に達し、RAM は 5% 未満です。主な問題は SQL クエリにあることはわかっています。ログから、すべての列の値を合計するクエリがいくつかあることが判明しました。アプリケーションが非常に大きいため、クエリを最適化することは短期的には不可能です。
短期的な解決策としては、32 コアの新しいサーバーを入手すべきでしょうか? あるいは、処理能力の一部をサーバーの RAM に移動する方法はありますか? そうすれば、90 GB を超える RAM が無駄にならずに済みます。
答え1
いいえ。
他のリソースが不足する前にコアが不足した MySQL サーバーを私はまだ見たことがありません。
多くの場合、CPU 使用率が高い問題は、より適切なインデックス (特に複合インデックス) を追加したり、遅いクエリを再作成したりすることで解決できます。
遅いクエリを見つけて、それについて話し合いましょう。 スローログ
「RAM 使用量が少ない」とは、通常、 の値が低すぎることを意味しますinnodb_buffer_pool_size
。その設定は RAM の約 70% である必要があります。ただし、 の設定が低い場合、通常は CPU 使用量が多くなるのではなく、I/O 使用量が多くなります。いくつかの不正なクエリについては、 と を表示してSHOW CREATE TABLE
くださいSELECT...
。