透過 logman 指令有效率的操作效能監視器

這個星期都忙碌於一個大型網站的效能調校,而效能調校首重數據分析,透過數據分析進一步瞭解應用程式所遇到的效能瓶頸,最常使用的工具不外乎就是 效能監視器 ( Performance Monitor ),但由於有多台主機,每壹台都要重新選取一次這些 效能計數器 (Performance Counter) 實在很麻煩,所以若能透過指令列工具建立效能監視集合就會十分方便。

備註: 在 Windows Server 2008 的名稱為 可靠性和效能監視器

透過指令列取得所有系統中可用的效能計數器,並另存於文字檔中

typeperf -q -o PerfMon_Counters_All.txt

取得的 PerfMon_Counters.txt 共有數千筆效能計數器物件,如何挑選適當的計數器就是門大學問了,我這裡僅列出與 ASP.NET 相關的計數器如下:

\System\*
\Memory\*
\PhysicalDisk(*)\*
\Process(*)\*
\Processor(*)\*
\Thread(*)\*
\.NET CLR Data(*)\*
\.NET CLR Networking(*)\*
\.NET CLR Memory(*)\*
\.NET CLR Interop(*)\*
\.NET CLR Exceptions(*)\*
\.NET CLR Loading(*)\*
\.NET CLR LocksAndThreads(*)\*
\.NET CLR Jit(*)\*
\.NET CLR Remoting(*)\*
\.NET CLR Security(*)\*
\ASP.NET\*
\ASP.NET Applications(*)\*
\ASP.NET v2.0.50727\*
\ASP.NET Apps v2.0.50727(*)\*
\ASP.NET State Service\*
\Web Service(*)\*

你也可以將以上計數器清單另存成一個文字檔,方便後續載入。

注意: 載入的效能計數器越多對系統的衝擊越大,因此請千萬小心,不要載入過多的效能計數器。

透過指令列建立資料收集器集合工具的使用者定義集合

logman create counter ASP.NET_PerfMon -cf PerfMon_Counters.txt

執行過以上指令後,就會自動在 效能監視器 的 [效能] / [資料收集器集合工具] / [使用者定義] 下方新增一個新的資料即可,如下圖示:

若要修改預設 15 秒的抽樣間隔,可以在建立時多加上 -si 的參數,如下指令為每 60 秒收錄一次效能數據

logman create counter ASP.NET_PerfMon2 -cf PerfMon_Counters.txt -si 60

這個步驟是我覺得最繁瑣的地方,透過指令自動化就會很方便,相較之下其他的指令列參數的用法就變的不那麼重要,可以直接透過 效能監視器 的視窗介面操作比較簡易且直覺,如果有興趣研究其他參數可以執行 logman /? 查詢。

透過指令列啟動剛剛建立的資料收集器

logman start ASP.NET_PerfMon

啟動之後你可以從 效能監視器 的視窗看見該資料集合已經啟動,並開始收集效能數據,如下圖示:

透過指令列停止剛剛建立的資料收集器

logman stop ASP.NET_PerfMon

透過效能監視器查看效能數據報表

由於我收錄的 ASP.NET 相關計數器非常之多,因此你會看到畫面密密麻麻的線條(如下圖點圖可放大)

你也可以考慮將還沒分析到的計數器暫時隱藏 ( 註: 按下 Ctrl + A 可全選 )

也可以點選 選定項目 將選取到的效能計數器特別高亮度顯示

也可以利用不同的檢視查看這些效能數據

 

相關連結

  

此文章由 will 發表於 2010/3/6 下午 07:13:12

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 介紹好用工具 | ASP.NET

標籤: , , , , , ,

收藏:

我的 Windows Home Server 安裝初體驗

今天參加 MVP 聚會,領了一台 ASUS HOME SERVER 回來試用,想不到這個產品真的連一個不太熟悉電腦的人都能夠非常順利的安裝完成,我覺得很難安裝失敗耶!微軟把整個 Windows Home Server 的安裝過程簡化到一個不可思議的境界,何況這還是一台 Server 喔,以下是從主機開機開始的完整安裝過程圖示,各位自行看圖說故事吧。( 註: 點擊圖片可放大顯示 )

安裝完畢!你看,不困難吧! ^__^

接著,你必須至少先建立一組帳號,該帳號密碼建議跟你當下使用 Windows 的帳號、密碼一樣即可。

開啟分享資料夾,馬上就可以將檔案儲存至 Home Server 摟!

  

此文章由 will 發表於 2010/2/4 下午 11:59:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 介紹好用工具

標籤: ,

收藏:

介紹好用工具:tree (以圖形顯示磁碟機或路徑的資料夾架構)

Windows 內建的 tree 指令列工具其實是一個短小精幹的好用工具,雖然是個很小的工具,但是要產生檔案清單的時候也還挺好用的,當專案需要產出程式清單時,透過這個小工具就可以很快的產出一份檔案清單,在稍加編輯一下就成一份文件了,不用不斷的剪剪貼貼。

用法也非常簡單,以下是使用說明:

使用範例如下:

1. 列出特定目錄下「所有包含子目錄的目錄」 ( 只會列出目錄清單 )

tree c:\inetpub\wwwroot

  

2. 列出特定目錄下「所有包含子目錄的目錄與檔案」 ( 只會列出目錄清單 )

tree /F c:\inetpub\wwwroot

  

3.  改以 ASCII 字元代表樹狀節點

如果嫌功能陽春,可以考慮使用 Tree for Windows 工具,這是 GnuWin32 計畫中的其中一套工具,功能與 Windows 內建的 tree 指令工具差不多,只是功能與選項複雜多了,用法說明如下 (點圖可放大)

使用範例如下:

1. 列出所有目錄與檔案,包括完整路徑檔案大小修改時間

tree.exe -a -f -h -D c:\inetpub\wwwroot

2. 列出所有目錄與檔案,包括完整路徑並以目錄優先列出然後才印出檔案 

tree.exe –f --dirsfirst c:\inetpub\wwwroot

相關連結

  

此文章由 will 發表於 2010/2/2 下午 11:58:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 介紹好用工具

標籤: ,

收藏:

介紹好用工具:ServiceEx ( 將應用程式轉成 Windows 服務 )

ServiceEx 是個好用且免費的小工具,他可以將任意應用程式註冊成 Windows 服務,例如 Windows 應用程式、Console 應用程式,並且讓這些應用程式服務的方式啟動,如果該程式主動關閉或意外關閉,ServiceEx 還會自動將程式自動重啟,對於不瞭解 Windows 服務應用程式開發的人可以考慮用這套工具。

ServiceEx 目前只能透過指令列工具執行,而且設定檔必須手動編輯一個名為 ServiceEx.ini 的檔案才行,以下是安裝一個普通應用程式為 Windows 服務應用程式的過程。

先假設你有個應用程式叫做 AutoPlurker.exe,該程式是個可以自動發噗的程式,且該程式是以 Console 應用程式的方式開發的,所以該程式會不斷執行並不會只執行一次就自動停止,注意: 這是個很重要的前提,否則你就設定 排定的工作(Task Scheduler) 定時執行即可,沒必要轉換成 Windows 服務。

假設你希望該應用程式希望註冊成 Windows 服務的名稱為 AutoPlurker,以下是安裝的過程:

1. 下載主程式 http://serviceex.com/files/ServiceEx.exe

2. 建立一個 ServiceEx 設定檔,並取名為 AutoPlurker.ini 內容如下 (含中文註解說明)
    注意: 該文件不能用 UTF-8 編碼,否則會安裝失敗,請用 ASCII 編碼儲存即可

[ServiceEx]
; 設定執行程式的完整路徑 (注意:路徑中有空白時需加上雙引號包起來)
ServiceExeFullPath = "C:\Program Files\Will Software\AutoPlurker.exe" 
; 執行該程式時需加上的參數
options = "-daemon"
; 該程式是否會與桌面互動 (即代表該程式執行時若有任何對話框是否應顯示的意思)
desktop = false
; 啟動類型 (可設定的值有 Auto, Manual, Disabled 三種) (預設: Auto)
Start=Auto
; 是否安裝完成後立即啟動 (預設: false) 
StartNow=false

3. 執行以下指令進行安裝

ServiceEx install AutoPlurker

如果沒有任何錯誤就大功告成啦! 以下安裝成功的畫面圖示:

以下是在 [控制台] / [服務] 中的畫面圖示:

 

若要手動啟動服務可在 [控制台] / [服務] 中啟動或可輸入以下指令啟動:

net start AutoPlurker

 

如果要移除安裝,需遵循以下步驟:

1. 先手動停止服務

net stop AutoPlurker

2. 再執行移除服務的指令

ServiceEx remove AutoPlurker

 

如果想更新設定檔的內容 (例如更換程式路徑),需遵循以下步驟:

1. 先手動停止服務

net stop AutoPlurker

2. 再執行移除服務的指令

ServiceEx remove AutoPlurker

3. 編輯 AutoPlurker.ini 設定檔

4. 重新註冊服務

ServiceEx install AutoPlurker

 

如果希望程式在意外結束時不想自動重新啟動該程式的話,必須自行修改機碼才行,以下是設定的步驟與注意事項:

1. 開啟 regedit 機碼編輯器

2. 瀏覽到以下機碼

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<your service name>\Parameters

3. 新增一個 DWORD 類型的鍵值,並取名為 Restart

4. 設定 Restart 這個鍵值的數值,該數值可設定 0, 1 或 2,分別代表意思如下:

  • 0 - 永遠不要讓應用程式重新啟動
  • 1 - 當應用程式異常結束時才需重新啟動 ( 當程式結束時的回傳值非為 0 時 )
  • 2 -  永遠讓應用程式重新啟動,即便該程式正常結束 [ 預設值 ]

 

相關連結

  

此文章由 will 發表於 2010/2/1 下午 11:58:05

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: 介紹好用工具

標籤: ,

收藏:

如何在 CodeRush 設定 Jump to Implementations 的快速鍵

CodeRush for Visual Studio .NET 是我最愛的 Visual Studio 外掛之一 (商業軟體),他幫我大幅縮短許多開發時間,而且功能強大到一個無可附加的地步。CodeRush v3 實現了 Jump to Implementations 功能讓我驚喜萬分,為了能直接運用這個功能,我研究了好些時間才將快速鍵設定好。

我們每個 ASP.NET MVC 的專案都會使用 Repository Pattern,都會先設計 Interface 然後再明確實做 Class。在 Visual Studio 中內建的 GoToDefintiaion (移至定義) 功能有個 F12 快速鍵只能將游標移至 Interface 而已,對我們來說最好能將游標移至那個明確實做的 Class 裡才能查看實際撰寫的程式碼,而當初在 CodeRush v2 時並無此功能,我從今年四月份建議他們開發這個功能,最後終於在苦等 8 個月後在 CodeRush v3 實現了。

以下是設定 Jump to Implementations 快速鍵的操作過程筆記。

 

開啟 DevExpress 的 Options 選單

開啟 DevExpress 的 Options 選單

從左側選單找到 IDE 目錄下的 Shortcuts 項目,並點擊「搜尋」圖示,再切換至 Command 頁籤,並在 Command 輸入(或選取) Navigate 後按下 [Find] 按鈕

從左側選單找到 IDE 目錄下的 Shortcuts 項目,並點擊「搜尋」圖示,再切換至 Command 頁籤,並在 Command 輸入(或選取) Navigate 後按下 [Find] 按鈕

找到後你會發現預設 Navigate 功能的快速鍵是 Ctrl+Alt+N,而 Context 為 Code Editor (程式碼編輯器)

找到後你會發現預設 Navigate 功能的快速鍵是 Ctrl+Alt+N,而 Context 為 Code Editor (程式碼編輯器)

如果你在 Code Editor (程式碼編輯器) 中,鍵盤游標為於 Method 之中,這時按下 Ctrl+Alt+N 就會出現 “Jump To…” 的畫面,這時我們常用的 Implementations 功能就會出現。

如果你在 Code Editor (程式碼編輯器) 中,鍵盤游標為於 Method 之中,這時按下 Ctrl+Alt+N 就會出現 “Jump To…” 的畫面,這時我們常用的 Implementations 功能就會出現。

這時我們再回到 Shortcuts 編輯視窗,這時可以修改快速鍵與 Navigate 功能鍵的傳入參數 (如下圖示)

  1. 相較於 Visual Studio 內建的 F12 快速鍵 (Edit.GoToDefinition) 功能,對於 Jump to Implementations 此功能的快速鍵我認為設定成 Ctrl+F12 比較好記。
  2. 由於我們只要指派 Ctrl+F12 快速鍵到 Jump to Implementations 功能,所以必須在 Parameters 參數欄位輸入 Implementations 才能完成設定。

 自定 Shortcuts

如果你不想改掉原本預設的 Ctrl+Alt+N 快速鍵,也可以自行新增一組新的 Ctrl+F12 快速鍵 (如下圖示),但記得設定時要選取 Code Editor 就好,讓該快速鍵僅在 Code Editor 使用:

如果你不想改掉原本預設的 Ctrl+Alt+N 快速鍵,也可以自行新增一組新的 Ctrl+F12 快速鍵 (如下圖示),但記得設定時要選取 Code Editor 就好,讓該快速鍵僅在 Code Editor 使用

相關連結

  

此文章由 will 發表於 2009/12/28 下午 09:15:33

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 介紹好用工具 | Tips

標籤: , ,

收藏: