1. 首页>
  2. 腾讯云代理

[经验分享] Windows缓存目录200多万个缓存文件导致业务不可用,我是这样定位和搞定的

腾讯云 2017年04月27日 浏览628

腾讯云代理 腾讯云直播申请 游戏上云

摘要:

问题场景:Server 2008 R2,系统盘剩下1M空间,业务不可用。
解决过程:
定位到C:\Windows\SysWOW64占用了34.5G,而正常系统该文件夹只有不到1G
image1.png 

image2.png 
image3.png 
进入SysWOW64逐层定位,最终定位到是
C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Microsoft\Windows\Temporary Internet Files这个文件夹,系统缓存异常,因为里面小文件太多,有几百万个,一双击文件夹,系统立马崩溃,试过重启系统,缓存仍然异常。
系统盘剩余空间只有1M,想用360强力删除之类的工具软件是不可能了,谁事先会想到在系统里放个这样的工具呢,这种情况下只能考虑“万能删除.bat”了,里面就2句命令。
   image4.png 
在记事本了写上这两句另存为.bat格式的,然后把
C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Microsoft\Windows\Temporary Internet Files这个文件夹用鼠标拖到 image5.png 的图标上,然后耐心等着就行。
Ctrl+E打开资源管理器(我的电脑、计算机),过几分钟刷新下会看到系统盘剩余空间在逐渐增大。
image6.png 
30多G,几百万个小文件清理了好几个小时才结束。不过,最终还是完美解决了问题。

类似的问题,之前还遇到1例,IIS站点122个,每个都特别卡,但查看服务器监控各项指标均正常。
于是进系统放开php.ini中的display_errors = On让显示报错信息,然后随机选择一个站点打开http://localhost/访问看报错如下图
image7.png 
(截图窗口缩放的原因,本来是两行显示的挤到一行了,具体如下)
PHP Notice: Undefined offset: 0 in D:\web\www\libs\classes\common_08cms\envbase.cls.php on line 217 
PHP Fatal error: Maximum execution time of 30 seconds exceeded in D:\web\www\include\general.inc.php on line 60
第一句是个notice告警级别很低可以忽略,第二个是致命错误,
D:\web\www\include\general.inc.php第60行超时,于是打开代码定位第60行发现是C:\Windows\Temp缓存目录,经验猜测估计是缓存目录小文件太多了,操作系统光遍历一遍这个目录都够累的了,而且用户IIS中还有122个站点。
image8.png 
代码中已经明示跟C:/WINDOWS/Temp有关了,于是去定位C:/WINDOWS/Temp,结果卡得根本进不到文件夹中去,右键查看属性有214万多个文件,我的乖乖!
image9.png 
214万多个文件,这是在C:\Windows\Temp文件夹上右击查看属性,这样比较快
要是直接进C:\Windows\Temp得卡死
这才是根本原因啊,要是服务器永远不重启不清理缓存,该用户的业务情况,Temp迟早有撑不住的一天。于是想办法清理C:\Windows\Temp,电脑管家清理了2个小时没有任何反应。估计它只是还没有遍历完,还没有到删除的那一步。
为了让系统快一点,先把IIS服务停止,退出电脑管家上"万能删除.bat" ,3个多小时后处理OK了,用户业务恢复正常。


腾讯云服务商邀请关注:

http://partners.qcloud.com/invitation/99377079157835da208bd0

关注服务商的链接,提供下您关注的QQ,我们这边审核下即可快速回复您的工单问题与技术支持! 感谢您的信任与支持!

auto_1452.png

腾讯云技术交流群


ps:本站信息来源于 bbs.qcloud.com

相关文章

在线客服
淘宝购买
腾讯云直播申请 title=
+成为腾讯云VIP客户 腾讯云直播申请 客服电话

15818558013

0755-33940501-803

0755-33940501-808