3

実稼働サーバーで CPU 使用率が高い問題が発生したので、将来に備えてそのような状況をローカルでデバッグする練習をすることにしましたが、ローカル MVC4 サイトをデバッグしようとすると、チュートリアルと同じ有益なスタック トレースが得られません。します。

質問: より有益なスタック トレースを取得できるかどうか知っている人はいますか?

HomeController.Index がどこかにあるはずですが、唯一のメソッド呼び出しは次のとおりです。

System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus ByRef)

ローカル設定

サーバー環境をシミュレートするために、ローカル IIS 8.0 (iis Express ではない)で実行されている.Net 4を使用して、ローカルMVC4 サイトを作成しました。私のローカル マシンはWindows 8を実行しています。

デバッグ ツール: Debug Diagnostics 1.2

このリンクをたどりました:http://www.iis.net/learn/troubleshoot/performance-issues/troubleshooting-high-cpu-in-an-iis-7x-application-pool

「図 6 - DebugDiag 分析レポート」。「FastApp._default.Page_Load(System.Object, System.EventArgs)」を含む最上行のスタック トレースのスクリーンショットがあります。

チュートリアルのスクリーンショット: ここに画像の説明を入力

私のスクリーンショット: ここに画像の説明を入力

最大CPU使用率をシミュレートする私のコード:

public class HomeController : Controller
{
 public ActionResult Index(int seconds)
 {
  ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

  DateTime start = DateTime.Now;
  while (DateTime.Now.Subtract(start) < TimeSpan.FromSeconds(seconds))
  {
    "".ToString();
  }
  return View();
 }
}

重複の可能性:

DebugDiag が .NET 4 で .NET スタック情報を表示しない

4

1 に答える 1

1

Debug Diag 1.2 では、.net Framework 4.0 の正しいスタック トレースが得られない場合があります。実際、.net 4.5 の正しいスタックはまったくありません。

フレームワーク 4.0 以降を対象としたメモリ ダンプを分析するには、Debug Diag 2.0 を使用する必要があります。ツールはhttp://www.microsoft.com/en-us/download/details.aspx?id=40336から入手できます。

于 2014-01-18T11:32:46.530 に答える