Windows Server 2016 安裝 遠端桌面服務 角色後,寫磁碟變慢的問題
作業系統版本:
目前已知Windows Server 2016 / 2019
問題描述:
當作業系統中新增 遠端桌面服務 角色後,使用資料庫客戶端遠端連線資料庫,匯出資料時速度會變慢,未安裝 遠端桌面服務角色前,匯出大約花費45秒左右,安裝後匯出大約花費520秒左右,相差12倍左右。
但是,解除安裝 遠端桌面服務 角色後,匯出資料的速度就恢復了正常,所以推斷跟 遠端桌面服務 角色有關係。
對作業系統的CPU、記憶體、磁碟、網路系統資源進行效能測試,在匯出資料慢時,資源使用率非常低,所以確定系統資源充足,沒有影響到匯出資料時間。
對資料網路傳輸時間和資料寫磁碟時間進行統計,發現匯出資料變慢,主要是寫入磁碟比較慢。
問題原因:
問題比較難解決,找到了資料庫相關方面的研發人員,也無法確定問題的原因,最後只能找微軟公司幫助解決問題。
微軟的工作人員透過使用 Process Monitor工具對匯出資料的過程進行了分析,得出如下結論:
在匯出速度快時,呼叫的堆疊如下
//呼叫棧如下
0 FLTMGR.SYS FltpPerformPreCallbacks
1 FLTMGR.SYS FltpPassThroughInternal
2 FLTMGR.SYS FltpPassThrough
3 FLTMGR.SYS FltpDispatch
4 ntoskrnl.exe IopSynchronousServiceTail
5 ntoskrnl.exe NtWriteFile
6 ntoskrnl.exe KiSystemServiceCopyEnd
7 ntdll.dll ZwWriteFile
8 KernelBase.dll
9 java.dll java.dll
10 java.dll java.dll
11 java.dll java.dll
在匯出慢的時,呼叫堆疊如下
傳輸較慢的日誌中,可以看到java在寫完初始檔案後,就沒有再寫檔案了,最後一直是在做網路傳輸,這個時候其實是系統程式在寫日誌
//具體呼叫棧如下,可以看到這時候是由TSFairShare這個檔案在寫檔案
0 FLTMGR.SYS FltpPerformPreCallbacksWorker
1 FLTMGR.SYS FltpInternalCompletePendedPreOperation
2 FLTMGR.SYS FltCompletePendedPreOperation
3 TSFairShare.sys I_CompletePendedIo C:\Windows\system32\drivers\TSFairShare.sys
4 TSFairShare.sys TSFSContinuePendedIo
5 TSFairShare.sys CTSSchedulerMgr::ContinueProcessIo
6 TSFairShare.sys CTSSchedulerMgr::ProcessNextWorkItem
7 TSFairShare.sys CTSSchedulerMgr::TSSchedulerWorkerThread
8 TSFairShare.sys CTSSchedulerMgr::staticTSSchedulerWorkerThread
9 ntoskrnl.exe PspSystemThreadStartup =
10 ntoskrnl.exe KiStartSystemThread
產生報錯原因:
根據微軟內部資料顯示,安裝rdsh的角色,就會block ODX 的快速傳輸機制,所以導致傳輸緩慢。
解決辦法 :
修改登錄檔,禁用TSFairShare功能。
在登錄檔中,有磁碟、網路、CPU資源啟用了TSFairShare,此將以下三個鍵值EnableFairShare由1修改為0,然後重啟計算機。也不用全都修改為0,根據自己的實際情況修改,我這裡是匯出資料時,寫入磁碟慢,因為只禁用磁碟的TSFairShare就可以了。
磁碟
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk\EnableFairShare
網路
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\NetFS\EnableFairShare
CPU
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System\EnableFairShare
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2317695/viewspace-2869909/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Win Server 2019遠端桌面服務部署Server
- Centos7安裝Xrdp遠端桌面服務CentOS
- Windows遠端桌面服務漏洞預警通告Windows
- Windows server 2016的安裝網路配置WindowsServer
- Windows server 2012R2系統安裝遠端桌面服務後無法多使用者同時登入是什麼原因?WindowsServer
- Windows server2008修改遠端桌面埠的方法WindowsServer
- MSSQL SERVER 2016在Windows Docker Container中的安裝SQLServerWindowsDockerAI
- windows遠端桌面設定,windows遠端桌面設定的方法Windows
- windows10開啟遠端桌面的步驟_win10如何開啟遠端桌面服務WindowsWin10
- 安裝RabbitMQ Server服務MQServer
- 命令列重啟遠端桌面服務命令列
- windows 安裝python後pip安裝路徑問題WindowsPython
- 解決Windows遠端桌面連線每次都提示輸入密碼的問題,遠端桌面記不住密碼Windows密碼
- FastNat外網訪問 Windows 3389 遠端桌面ASTWindows
- Windows Server 2016 Nginx 安裝配置詳細圖文教程WindowsServerNginx
- Windows遠端連線Docker服務WindowsDocker
- [openssh]windows 10使用cygwin安裝openssh服務端Windows服務端
- windows遠端桌面埠修改Windows
- 遠端服務不能啟動問題的解決方法
- windows 安裝Nginx服務WindowsNginx
- windows server 2012更改遠端埠,限制IP訪問WindowsServer
- Windows mstsc 遠端桌面連結 ubuntu 18.04 遠端圖形桌面WindowsUbuntu
- rdpclip 遠端桌面協議常遇到的問題協議
- windows遠端桌面mstsc使用 代理Windows
- 獲取Windows遠端桌面埠Windows
- 修改windows遠端桌面3389埠Windows
- ftp服務端安裝FTP服務端
- Windows Server 2016及以上版本安裝.net3.5方法WindowsServer
- Windows server 2008 R2 多使用者遠端桌面配置教程WindowsServer
- windows下安裝Tomcat服務WindowsTomcat
- Windows server 2008 R2伺服器遠端桌面3389埠的修改方法WindowsServer伺服器
- 如何提高後臺服務應用問題的排查效率?日誌 VS 遠端除錯除錯
- Ubuntu 20.04 VNC服務開啟-遠端桌面設定UbuntuVNC
- Windows Server 2022 安裝WindowsServer
- windows?10如何遠端桌面連線Windows
- Windows遠端桌面的奇技淫巧Windows
- Windows 10 修改遠端桌面埠(qbit)Windows
- MongoDB 在windows伺服器安裝部署與遠端訪問配置MongoDBWindows伺服器