小樱 发表于 2019/1/24 05:43

windows server 2016服务器优化,修改句柄限制,防止没有占用满载情况,运行程序多导致点我的电脑都卡的解决方法。desktop heap区?

实际上和desktop heap区关系不大,windows下限制同时打开文件视乎是512个还是2048个,Linux默认是1024个,基本上不是这些的问题。

主要是句柄,一般情况,,服务器超过7W句柄就会开始卡顿,8W就卡的不行了,这时候就修改它来解决。

微软官方介绍:
用户界面对象仅支持每个对象一个句柄。进程无法继承或复制用户对象的句柄。一个会话中的进程无法引用另一个会话中的用户句柄。
每个会话的理论限制为65,536个用户句柄。但是,每个会话可以打开的最大用户句柄数通常较低,因为它受可用内存的影响。用户句柄也有默认的每进程限制。要更改此限制,请设置以下注册表值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\USERProcessHandleQuota
该值可以设置为200到18,000之间的数字。


GDI对象每个对象只支持一个句柄。GDI对象的句柄对进程是私有的。也就是说,只有创建GDI对象的进程才能使用对象句柄。
每次会话理论上限制为65,536个GDI句柄。但是,每个会话可以打开的最大GDI句柄数通常较低,因为它受可用内存的影响。
Windows 2000:每个会话限制为16,384个GDI句柄。
GDI句柄还有一个默认的每进程限制。要更改此限制,请设置以下注册表值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota
此值可以设置为256到65,536之间的数字。
Windows 2000:此值可以设置为256到16,384之间的数字。

根据参考资料显示,2003系统或者以上的都可以开到65535,16384仅为2000系统限制。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems
Windows值双击修改它

2016服务器默认,windows10也是一样,毕竟是相同内核,所以无需修改。
2003系统中默认值为Windows SharedSection=1024,3072,512,寻找这一段把他3072这个加大为8192即可。第二个意思是交换式,第三个是非交互式,也就是界面和没界面,单位为KB,等于说默认值系统20MB内存占用。
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,768 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16


总结,GDIProcessHandleQuota值应该影响最大,直接开到65536,USERProcessHandleQuota也拉到微软介绍提示的最大允许值65536
不能超过这个65536值,否则按照默认10000运行。
什么,不会改还是嫌麻烦,,下载注册表一键修改GDIProcessHandleQuota和USERProcessHandleQuota

重新启动计算机生效,可是我测试并没有什么卵用???难道注册表改动的是单个进程上限。。而不是系统全局上限吗


参考微软官方:
https://docs.microsoft.com/zh-cn/windows/desktop/SysInfo/user-objects
https://docs.microsoft.com/zh-cn/windows/desktop/SysInfo/gdi-objects
https://weblogs.asp.net/mikedopp/increasing-user-handle-and-gdi-handle-limits

参考网络资料:
https://stackoverflow.com/questions/9723470/whats-the-upper-limit-on-gdi-objects-for-one-process-in-windows-7
https://blogs.technet.microsoft.com/markrussinovich/2010/02/24/pushing-the-limits-of-windows-user-and-gdi-objects-part-1/
https://blogs.technet.microsoft.com/markrussinovich/2010/03/31/pushing-the-limits-of-windows-user-and-gdi-objects-part-2/
https://blogs.msdn.microsoft.com/oldnewthing/20070718-00/?p=25963/
https://www.xuebuyuan.com/538713.html
http://www.solidworks.org.tw/forum.php?mod=viewthread&tid=31785

desktop heap参考资料:
https://support.microsoft.com/zh-cn/help/947246/you-may-receive-an-out-of-memory-error-message-because-of-the-desktop
https://yq.aliyun.com/articles/61891
http://blog.fang.com/5236596/5850258/articledetail.htm

页: [1]
查看完整版本: windows server 2016服务器优化,修改句柄限制,防止没有占用满载情况,运行程序多导致点我的电脑都卡的解决方法。desktop heap区?