最近公司某一台WSUS服务器出现内存过高报警,下班后将这台机器重启了。结果第二天又出现内存不足的情况。看样子不是偶发状况,必须处理才行。
登录机器发现sqlserver.exe和w3wp.exe这两个进程占用大量内存。
sqlserver.exe是数据库程序,这台机器使用内置wid数据库,没有使用sqlserver,无法使用sqlserver management客户端连接进行设定,只能使用微软发布的sqlcmd工具设置。
sqlcmd使用sqlodbc接口访问内置数据库,还需要安装sqlodbc驱动,而该驱动依赖Visual C++ 2017运行库,下载这三个文件VC_redist.x64.exe、msodbcsql.msi和MsSqlCmdLnUtils.msi。然后依序安装即可。
安装完成后,开启一个cmd窗口,输入如下命令连接内置数据库
sqlcmd -E -S \\.\pipe\Microsoft##WID\tsql\query
登录成功后会出现提示符1>
然后输入如下命令显示高级选项
exec sp_configure 'show advanced option', '1';
reconfigure;
exec sp_configure;
go
然后会显示内置数据库的设定
输入如下命令将内置数据库内存占用调整为4G,这个可以根据各自的服务器来调整。
exec sp_configure 'max server memory', 4096;
reconfigure with override;
go
执行成功会会有提示,完成后输入quit退出。
这时候在资源管理器里已经能看到sqlserver.exe的内存占用下降到4G。
接下来设置iis服务的内存上限,以解决w3wp.exe的内存占用过大的问题。
打开Internet Infomation Services (IIS) Manager
在服务中点开Application Pools中右键WsusPool,在弹出菜单中点击Advanced Settings。
在Recyling类别中找到Private Memory Limit (KB),设置一个内存上限值,这里单位是KB,大家自己用计算机算一下,我这里给到4G,就是4*1024*1024=4194304。
点击OK保存,然后重启WsusPool生效。
至此完成WSUS Server内存不足的问题。
评论
发表评论