星期一, 1 二月 2010

Windows 本地服务数量的限制

« MySQL 的大小写敏感问题 | Main | UNIX 查找属于某一用户的文件并清除 »
最近将某一程序安装成多个服务供多个用户使用,当启动到第74个服务时,服务无法启动,但是本地系统账号的服务可以启动,普通服务的账号已经无法启动,看来能够启动的服务数量是有限制的。查了很多资料终于搞清楚了。

Win32k.sys 驱动程序为桌面堆分配 48 MB 的缓冲区地址空间。 确保您执行不具有许多桌面, 占用整个 48 MB 的缓冲区地址空间。

在windows 2003中,默认的非交互式堆栈大小为512k,那么96个服务就是极限了,呼呼!系统本身的服务也要占用这48MB的空间,所以我运行到75个就不行了。 估计64位的windows会支持更大的桌面堆栈!

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

Posted by xiaojf at 7:04 下午 in 未分类

 

[Trackback URL for this entry]

Your comment:

(not displayed)
 
 
 

Live Comment Preview:

 
« First  « Prev   1 2 3 4 5   Next »  Last »
« 二月 »
星期日星期一星期二星期三星期四星期五星期六
 123456
78910111213
14151617181920
21222324252627
28