専用の VPS 上に小さな (今のところ) Asp.Net MVC 5 Web サイトがあります。サーバーに移動してタスク マネージャーを起動すると、"SQL Server Windows NT - 64 ビット" が約 80% の CPU と 170MB の RAM を使用し、IIS が 6% の CPU と 400MB の RAM を使用していることがわかります。サーバーの仕様は次のとおりです。
- CPU 1.90Ghz デュアルコア
- メモリー 2GB
- Windows Server 2012
- SQL Server Express 2012
- ディスク容量: 25GB、2.35 フリー。
データベースはそれほど大きくありません。そのバックアップは 10MB 未満です。
私はできる限りウェブサイトを最適化しようとしました。多くのコントローラにキャッシングを追加し、かなり多くのコントローラにドーナツ キャッシングを実装しました。しかし、今日、オンラインのユーザーが 5 人しかいなかったにもかかわらず、検索は機能しませんでした。サーバーで Windows を再起動したところ、機能し始めましたが、サーバーが起動した瞬間に CPU 使用率が高くなりました。興味深いことに、SQL Server Management Studio を開いて、CPU を最も多く消費しているクエリのレポートを取得しようとすると、現在 CPU を消費しているクエリはないと表示されます!!! しかし同時に、SQL サーバーが大量の CPU を消費していることもわかります。すべての CPU を占有しているものを調べるにはどうすればよいですか? 以下はサーバーからの画像です。
私は、ウェブサイトの設計と実装に非常に注意を払っていました/現在も慎重です。すべてのデータベース アクセスは、Entity Framework の最新バージョンを介して行われます。サーバーのスペックが低いのかな。どんな助けでも大歓迎です。
アップデート:
sp_who2
ストアド プロシージャの結果を次に示します。