終端服務 - MS Access 經常“無響應”
接觸:
我們使用我通過終端服務提供的內置 MS Access 的程序。我剛剛在 RAID 0 中安裝了一個帶有四核 2.6GHz Xeon、8GB RAM 和 4 個 SATA 驅動器的新 TS 伺服器。在安裝的 Server 2008 R2(顯然是 64 位)中。它的唯一作用是TS。
問題:
只有幾個會話(10 次以下),我開始在每個會話中收到頻繁的 Not Responding 消息。當它發生時,使用者並沒有做任何特別費力的事情,只是表單導航和簡單的插入查詢。
我可以忍受一些攤位,但是在 WS08 中它在視覺上很刺眼,因為螢幕變灰了,並且它顯示了一個對話框,提供等待或關閉一些其他選項。
問題:
- 對提高性能和減少掛起有什麼建議嗎?
- 是否可以禁用對話框(總是等待)和螢幕變灰?
聽起來您需要一些基本的性能分析,以了解您的瓶頸所在。您從此圖表中獲得的數字將使您對從哪裡開始尋找性能問題有一個非常粗略的了解。
我會啟動性能監視器(開始/性能監視器),導航到“性能監視器”節點,並使用工具欄中的“+”圖示,將以下計數器添加到圖表中:
- Memory - Pages / sec - 這將顯示導致性能不佳的記憶體分頁活動(它也可以顯示與性能不佳無關的分頁活動)。如果您看到高分頁,那麼您可能會遇到 RAM 容量的瓶頸。這也可能表現為磁碟瓶頸(因為讀取/寫入頁面文件),所以要小心。
- 物理磁碟 - 平均 磁碟隊列長度 - 選擇與 Access 數據庫文件所在的驅動器對應的實例(假設它們在伺服器電腦的本地磁碟上) - 此數字不應大於 2 x RAID 中的軸數音量作為一個非常非常普遍的經驗法則。如果看起來您遇到了磁碟瓶頸,您可以更深入地研究磁碟計數器。
- Network Interface - Bytes Total / sec - 選擇與客戶端訪問伺服器的 NIC 對應的實例。如果 Access 數據庫文件託管在網路共享上,請為伺服器用來訪問該網路共享的 NIC 添加一個實例(假設它不是客戶端訪問共享所通過的同一個 NIC)。- 這將為您提供網路介面上移動的字節/秒的總數。您可以使用負載測試工具WSTTCP來衡量伺服器和客戶端電腦之間的最大頻寬使用率。將該數字與該數字進行比較。
Perfmon 將自動為機器中所有處理器的“總數”添加一個“% Processor Time”計數器。我將刪除它並為機器中的每個處理器實例單獨添加一個處理器 - % 處理器時間計數器。Microsoft Access 主要是單執行緒的,如果您請求單個處理器實例,“_Total”% 處理器時間計數器可能僅顯示 25%(如果您的處理器上有超執行緒,則為 12.5%)。
這涵蓋了潛在的瓶頸——磁碟、RAM、網路和 CPU。您可以使用該圖表來了解盒子的總體性能。然後,您可以開始深入研究特定的瓶頸並了解罪魁禍首。
我的一位客戶在執行 Windows Server 2008 的終端伺服器上部署了他們在辦公室使用了幾年的“小型 Access 應用程序”,並對它的性能如此糟糕感到震驚。它在台式機上“執行良好”,他們希望它在終端伺服器上也一樣。事實證明,當使用者同時打開應用程序時,他們會很快耗盡終端伺服器上的所有 RAM。在他們的一台帶有 1 或 2GB RAM 的台式機上打開數據庫並不是什麼大問題,但是 15 個人試圖在終端伺服器上共享它太多了。(如果你能相信的話,數據庫中有儲存為 OLE 對象的大型 PDF 文件……難以置信但真實。MDB 文件超過 300MB……)
順便說一句:RAID 0?在伺服器上?您通過使用 RAID-0 來增加失敗的機率,因為它具有“零”冗餘。如果您正在尋找或高性能,您最好使用 RAID-10 並以可靠性的名義犧牲一些磁碟空間。我無法想像您在執行 Microsoft Office 類型應用程序的終端伺服器機器上需要 RAID-0 的原始 IO 性能。