桌面堆设置整理

查看 83|回复 12
作者:binlili   
   
将许多复制代理配置为在服务器上运行时,某些SQL Server复制代理无法运行
森林32位系统进入游戏方法 32位系统如何运行游戏
配置单个桌面堆的大小配置单个桌面堆的大小要复杂一些。就桌面堆大小而言,有三种可能:·桌面属于交互式窗口站,是“断开连接”或“Winlogon”桌面,因此其堆大小分别固定为64KB或128KB(对于32位x86)·桌面堆属于交互式窗口站,不是上述桌面之一。此桌面的堆大小是可配置的。·桌面堆属于非交互式窗口站。这个桌面的堆大小也是可配置的。每个桌面堆分配的大小由以下注册表值控制:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
此注册表值的默认数据如下所示(全部在一行上):
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows  ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3  ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off  MaxRequestThreads=16
“SharedSection=”后面的数值控制如何分配桌面堆。这些SharedSection值以千字节为单位指定。第一个SharedSection值(1024)是所有桌面共用的共享堆大小。此内存不是桌面堆分配,不应修改该值以解决桌面堆问题。第二个SharedSection值(3072)是与交互式窗口站关联的每个桌面的桌面堆大小,但“Disconnect”和“Winlogon”桌面除外。第三个SharedSection值(512)是与“非交互式”窗口站关联的每个桌面的桌面堆大小。如果不存在此值,则非交互式窗口工作站的桌面堆大小将与为交互式窗口工作站指定的大小相同(第二个SharedSection值)。考虑上面描述的两个桌面堆耗尽场景。如果遇到第一种情况(会话视图空间耗尽),并且大多数桌面堆是非交互式的,那么可以减少第三个SharedSection,以便创建更多(更小)非交互式桌面堆。当然,如果使用非交互式堆的进程需要完整的512 KB,则这可能不是一个选项。如果遇到第二种情况(单个桌面堆分配已满),则可以增加第二个或第三个SharedSection值,以允许每个桌面堆大于3072或512 KB。一个潜在的问题是可以创建的总桌面堆更少。
会话0中的窗口工作站和桌面到底是什么?既然我们知道了如何调整会话视图空间和各种桌面的大小,那么有必要讨论一下为什么有那么多窗口工作站和桌面,特别是在会话0中。首先,您会发现每个WinSta0(交互式窗口站)至少有3个桌面,并且每个桌面都使用不同数量的桌面堆。我之前曾提到过这一点,但回顾一下,每个交互式窗口站的三个桌面是:·默认桌面-桌面堆大小可配置如下所述
·断开桌面连接-在32位系统上,桌面堆大小为64k·Winlogon桌面-在32位系统上,桌面堆大小为128k
注意,WinSta0中可能还有更多的桌面,因为任何进程都可以调用CreateDesktop并创建新的桌面。让我们继续讨论与非交互式窗口站相关联的桌面:这些通常与服务相关。系统将创建一个窗口工作站,在该工作站中启动在LocalSystem帐户下运行的服务进程。这个窗口站名为service-0x0-3e7$。它以LocalSystem帐户的LUID命名,包含一个名为Default的桌面。但是,作为LocalSystem interactive运行的服务进程在Winsta0中启动,以便它们可以在会话0中与用户交互(但仍在LocalSystem上下文中运行)。在显式用户或服务帐户下启动的任何服务进程都有一个窗口站和由服务控制管理器为其创建的桌面,除非其LUID的窗口站已经存在。这些窗口站是非交互式窗口站。窗口站名称基于LUID,对于每次登录都是唯一的。如果一个实体(而不是系统)多次登录,则每次登录都会创建一个新的窗口站。示例窗口站名称是“service-0x0-22e1$”。一个常见的桌面堆问题发生在具有大量服务的系统上。这可以是大量独特的服务,也可以是一个(设计拙劣的,IMHO)自己安装多次的服务。如果服务都在LocalSystem帐户下运行,那么会话0\Service-0x0-3e7$\Default的桌面堆可能会耗尽。如果这些服务都在另一个多次登录的用户帐户下运行,每次获取一个新的LUID,就会为服务的每个实例创建一个新的桌面堆,会话视图空间最终将耗尽。根据您现在对服务进程如何使用窗口站和桌面的了解,您可以使用这些知识来避免桌面堆问题。例如,如果会话0\Service-0x0-3e7$\Default desktop的桌面堆不足,则可以通过更改运行该服务的用户帐户将某些服务移动到新的窗口工作站和桌面。
解决办法:服务器的内存值与IIS线程值不足导致解决方法:注册表里修改:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystemswindows键值%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,3072 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=80 MaxRequestThreads=96
SharedSection=1024,3072,4092这两个改大就不会了,这个主要是修改IIS的线程数大点,根据自己的内存大小,调整对应倍数。
同时:
使用注册表设置增加桌面堆大小
可以更改以下注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\SessionViewSize 例如, (,将值从 48 增加到 64) 。HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows 例如, (,将 的第三个 SharedSection 值增加 256 KB)
必须在这两个节点上应用更改。 必须在更改之前保存注册表项,并且必须在应用更改后重启服务器。
"SessionViewSize"=dword:00000064 (100M)
SharedSection=1024,4096,
[ol]Windows Registry Editor Version 5.00
;;;;桌面堆设置,SharedSection=1024,4096,768;MaxRequestThreads=96
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]
"Windows"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
  74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,\
  00,73,00,72,00,73,00,73,00,2e,00,65,00,78,00,65,00,20,00,4f,00,62,00,6a,00,\
  65,00,63,00,74,00,44,00,69,00,72,00,65,00,63,00,74,00,6f,00,72,00,79,00,3d,\
  00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,53,00,68,00,61,00,\
  72,00,65,00,64,00,53,00,65,00,63,00,74,00,69,00,6f,00,6e,00,3d,00,31,00,30,\
  00,32,00,34,00,2c,00,34,00,30,00,39,00,36,00,2c,00,37,00,36,00,38,00,20,00,\
  57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,3d,00,4f,00,6e,00,20,00,53,00,75,\
  00,62,00,53,00,79,00,73,00,74,00,65,00,6d,00,54,00,79,00,70,00,65,00,3d,00,\
  57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,53,00,65,00,72,00,76,00,65,\
  00,72,00,44,00,6c,00,6c,00,3d,00,62,00,61,00,73,00,65,00,73,00,72,00,76,00,\
  2c,00,31,00,20,00,53,00,65,00,72,00,76,00,65,00,72,00,44,00,6c,00,6c,00,3d,\
  00,77,00,69,00,6e,00,73,00,72,00,76,00,3a,00,55,00,73,00,65,00,72,00,53,00,\
  65,00,72,00,76,00,65,00,72,00,44,00,6c,00,6c,00,49,00,6e,00,69,00,74,00,69,\
  00,61,00,6c,00,69,00,7a,00,61,00,74,00,69,00,6f,00,6e,00,2c,00,33,00,20,00,\
  53,00,65,00,72,00,76,00,65,00,72,00,44,00,6c,00,6c,00,3d,00,73,00,78,00,73,\
  00,73,00,72,00,76,00,2c,00,34,00,20,00,50,00,72,00,6f,00,66,00,69,00,6c,00,\
  65,00,43,00,6f,00,6e,00,74,00,72,00,6f,00,6c,00,3d,00,4f,00,66,00,66,00,20,\
  00,4d,00,61,00,78,00,52,00,65,00,71,00,75,00,65,00,73,00,74,00,54,00,68,00,\
  72,00,65,00,61,00,64,00,73,00,3d,00,39,00,36,00,00,00[/ol]复制代码[ol][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"SessionViewSize"=dword:00000064[/ol]复制代码

桌面, 窗口, 大小

chutsetien   
谢谢分享
q162882   
学习了,看不懂
h07799486   
感谢大佬分享
荷鹤赫   

学习了
Osk   
谢谢分享
weyou   
te
cssk   
谢谢分享
timothyye   
也行
noahhhh   
学习了
您需要登录后才可以回帖 登录 | 立即注册

返回顶部