
# 背景描述
- 需要在一台客户提供的空虚拟机上部署星空环境并恢复账套用做测试,客户账套备份25GB,恢复出来有300GB。
# 问题
- 环境恢复后异常卡慢,在该虚拟机中做任何操作都要反应1分钟以上。
# 解决尝试
### 查看机器配置及任务管理器
- 查看该虚拟机系统配置为 server 2016 ,E3-1220 V5 3.00GHz 2核4线程 16GB 1T
- 查看任务管理器情况,CPU 14%, 内存 96% ,无L1缓存等
- 我在纠结为什么这个CPU没有三级缓存,但是对比其他正常的虚拟机系统配置,并没有特别异样,都没有三级缓存,16GB不至于如此卡顿,内存96%也不应该卡到在机器上点任何东西都无法响应(其他正常环境也经常有内存96%的情况)。
- 怀疑是该虚拟机所属硬件配置有些问题(但我无法知道所属硬件是什么配置,只知道这台虚拟机和其他虚拟机在不同硬件上)
### 增加内存及虚拟内存
- 虽然并不觉得是内存不够的问题,但是增加内存也是一个值得尝试的办法,于是一方面联系客户给虚拟机加了6GB内存,一方面增加了虚拟内存。
### 数据库限制内存
- 在机器内存加到24GB后,内存仍然是96%,查看任务管理器,发现绝大部分都被Sql Server进程占用(可能由于该账套太大了300GB),于是开始限制数据库内存为8GB(从客户了解到它们的生产环境128GB内存之前也经常被Sql Server进程占满)。
- 在限制了数据库内存后,查看任务管理器,内存可保持在75%以下了,但是卡顿状态依然存在,所以说并不是内存不够的问题。
### 重启机器和服务
- 从出现问题,到期间的各种尝试,都试过多次重启机器、重启站点等,但是均未解决。
### 是否机器硬件问题
- 此时已经没了头绪,内心笃定是这台虚拟机的硬件不给力。(也确实没时间一直泡在这个问题上摸索了,还有很多其他的任务,此事就暂时搁置了)
- 两个星期后(期间一直没关机,也没任何人登录过),再次登录这台虚拟机,惊奇的发现机器不卡了,然后我删除旧账套,重新恢复了一个账套,打包等等操作都是正常流畅的,虽然机器正常了,但这说明并不像是机器硬件问题。
- 直到几天后重启了一下机器,突然又回到了卡顿的状态,我顿觉不妙却又不知道哪里有问题。
### 磁盘活动查看
- **毫无头绪->一线生机**
- 就在我没什么头绪的时候,本着看看详细参数的想法我在任务管理器中打开了【资源监视器】,CPU和内存情况都没特殊的,但旁边的磁盘监控却发现了异常,磁盘读写是满的,这并不正常,内存的占用率高已经排除了,磁盘的还没有,于是查看哪个进程的磁盘读写占用率高,发现还是sqlservr.exe,并且一直持续。
- 于是先关闭sqlserver试试,关闭后机器