windows-------------兩周2016-09-02

來源:互聯網
上載者:User

標籤:2周

問題描述:explorer一直以38.8k的(峰值為77.5k)的速度規律性的讀取IO,讀取次數94/s。結果是一直佔用cpu核心程式的時間,引起頁錯誤。沒有記憶體變化,說明它一直沒有讀到需要的資料。不停的頁錯誤,說明它不是讀真實的物理裝置,而是在讀那倆個頁。

問題分析:發起請求-----不在working set----引起page fault----kernel trap gate----1.若為硬fault,訪問page backing store;2.軟,不訪問-----added to ws

由於無法載入page,使得線程迴圈請求。所以最簡單粗暴的辦法,就是關掉線程。

可疑線程如下:

1492    28    stobject.dll!CSysTray::SysTrayThreadProc
ntkrnlpa.exe!KiSwapContext+0x2f
ntkrnlpa.exe!KiSwapThread+0x8a
ntkrnlpa.exe!KeWaitForSingleObject+0x1c2
ntkrnlpa.exe!KiSuspendThread+0x18
ntkrnlpa.exe!KiDeliverApc+0x124
ntkrnlpa.exe!KiSwapThread+0xa8
ntkrnlpa.exe!KeWaitForSingleObject+0x1c2
win32k.sys!xxxSleepThread+0x192
win32k.sys!xxxRealInternalGetMessage+0x418
win32k.sys!NtUserGetMessage+0x27
ntkrnlpa.exe!KiFastCallEntry+0xfc
ntdll.dll!KiFastSystemCallRet
USER32.dll!NtUserGetMessage+0xc
stobject.dll!SysTrayMain+0x180
stobject.dll!CSysTray::SysTrayThreadProc+0x4f
kernel32.dll!BaseThreadStart+0x37

1424    5    SHLWAPI.dll!WrapperThreadProc
ntkrnlpa.exe!KiSwapContext+0x2f
ntkrnlpa.exe!KiSwapThread+0x8a
ntkrnlpa.exe!KeWaitForSingleObject+0x1c2
ntkrnlpa.exe!KiSuspendThread+0x18
ntkrnlpa.exe!KiDeliverApc+0x124
ntkrnlpa.exe!KiSwapThread+0xa8
ntkrnlpa.exe!KeWaitForSingleObject+0x1c2
win32k.sys!xxxSleepThread+0x192
win32k.sys!xxxRealWaitMessageEx+0x12
win32k.sys!NtUserWaitMessage+0x14
ntkrnlpa.exe!KiFastCallEntry+0xfc
ntdll.dll!KiFastSystemCallRet
USER32.dll!NtUserWaitMessage+0xc
Explorer.EXE!CTray::MainThreadProc+0x29
SHLWAPI.dll!WrapperThreadProc+0x94
kernel32.dll!BaseThreadStart+0x37

1604    1    BrowseUI.dll!BrowserProtectedThreadProc


學習資料

working set:the amount of memory  in a given time interval,effective use of caches。 the working set strategy prevents thrashing while keeping the degree of multiprogramming as high as possible. Thus it optimizes CPU utilization and throughput.

ws可以從data和code分,也可以從share跟private分。

ws特點:通過TLB定位,pageable,不含Address Windowing Extensions(AWE)以及large page allocations。相關函數GetProcessMemoryInfo、Get(Set)ProcessWorkingSetSizeEx、EmptyWorkingSet、VirtualUnlock、UnmapViewOfFile。在psapi.h中還發現了一個函數QueryWorkingSet,返回了ws中每個頁的屬性跟位置。常態操作它的是系統的memory manager。當working set被全部進程拋棄的時候,進入transition page狀態,等待著重利用。

通過工具(E:\book\0code\working-set)讀出結果如下(尚未完善,待續)

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/86/C3/wKiom1fJjM6w1C55AAA2XkydlJE459.jpg" title="660.JPG" alt="wKiom1fJjM6w1C55AAA2XkydlJE459.jpg" />

process:

進程除了自己的結構之外,子系統部分csrss.exe/win32k.sys分別在使用者跟核心維護著對應的結構:CSR_PROCESS、W32PROCESS。參考連結http://forum.sysinternals.com/topic15457.html


windows-------------兩周2016-09-02

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.