服务器应用服务为何卡顿?原来是内存耗尽惹的祸!

       做过运维的朋友们都可能会遇到:服务器应用程序运行慢的问题,最终各部门找上门,

       今天在这我跟大家分享一个案例及其解决办法。以前我跟很多朋友们也为这样的事情苦恼过,我的服务器内存可是64G啊,这都不够它吃的

       后来我打开任务管理器一看原来是内存耗尽惹得祸,内存使用99%,CPU使用70%~100%之间变动,如果访问应用的时候,服务器立马变成100%,空闲时慢慢降下一点来。再看进程里面的变化,你就会发现SQL Server进程占用99%的内存,这时我才恍然大悟,原来是数据库捣的鬼,

       捣蛋鬼找到了,但还没发现它是怎么捣蛋的,根据现象分析,服务每次重启都得过一段时间才会出现这样的问题,并且基本上一个礼拜后才出现这样的问题。经过查询资料知道,SQL Server在运行的时候会把访问过的数据缓存起来,以提高再次访问效率,也就是说内存耗尽的根找着了,

      分析到这里,很多朋友们可能都有解决办法了,就是设置数据库本身可以设置其使用的内存大小,灵感立马来了,赶紧去设置数据库使用的内存大小,下面给大家简单说一下配置方法,以SQL Server 2012为例:

1、首先打开数据库管理器;

2、然后在服务器名称上点右键选属性;

3、再点击内存,进入内存选项配置界面

设置完后,运行一段时间以后另一个问题又出现了,虽然服务器运行一段时间以后数据库把配置的内存吃完了,但是不会出现服务器死机卡顿现象,可应用服务程序运行还是会慢。

啊啊啊    只能出大招了

设置周期性重启SQL Server 2012 R2服务,下面给大家介绍一下方法:

1、建立一个重启SQL Server 2012 R2服务批处理文件。

首先,新建一个txt文档

接着,在刚才建的文档中输入一下命令

    net stop sqlserveragent
    net stop mssqlserver
    net start mssqlserver
    net start sqlserveragent

最后,保存文件名为ResetSqlServer,扩展名为bat

2、设置一个计划任务(我服务器系统是Wondows Server 2012),定时自动执行上面新建的批处理文件。

首先,进入控制面板,点击“查看方式”选“小图标”

接着,单击管理工具进入界面,双击“计划任务程序”,进入如下界面

再接着,单击创建任务,并输入任务名称,点确定保存

再接着,新建触发器,设置好后,点确定保存

提醒:开始时间一定设置成空闲时间

最后,新建操作,点击浏览按钮,选择刚刚建好的批处理文件ResetSqlServer.bat

到此为止,大功告成,修成正果!


发布了1535 篇原创文章 · 获赞 586 · 访问量 237万+

猜你喜欢

转载自blog.csdn.net/sD7O95O/article/details/104058084