前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows缓存目录200多万个缓存文件导致业务不可用

Windows缓存目录200多万个缓存文件导致业务不可用

原创
作者头像
Windows技术交流
发布2019-12-24 14:42:11
1.7K0
发布2019-12-24 14:42:11
举报
文章被收录于专栏:Windows技术交流Windows技术交流

问题场景:Server 2008 R2,系统盘剩下1M空间,业务不可用。

解决过程:

定位到C:/Windows/SysWOW64占用了34.5G,而正常系统该文件夹只有1G左右

进入SysWOW64逐层定位,最终定位到是

C:/Windows/SysWOW64/config/systemprofile/AppData/Local/Microsoft/Windows/Temporary Internet Files这个文件夹,系统缓存目录里面小文件太多,有几百万个,一双击文件夹,系统立马崩溃,试过重启系统,缓存仍然异常。

系统盘剩余空间只有1M,想用360强力删除之类的工具软件是不可能了,谁事先会想到在系统里放个这样的工具呢,这种情况下只能考虑“万能删除.bat”了,里面就2句命令。

在记事本里写上这两句另存为.bat格式的,然后把

C:/Windows/SysWOW64/config/systemprofile/AppData/Local/Microsoft/Windows/Temporary Internet Files这个文件夹用鼠标拖到“万能删除.bat”的图标上,然后耐心等着就行。

Ctrl+E打开资源管理器(我的电脑、计算机),过几分钟刷新下会看到系统盘剩余空间在逐渐增大。

30多G,几百万个小文件清理了好几个小时才结束。不过,最终还是完美解决了问题。

类似的问题,之前还遇到1次,服务器上IIS站点100多个,每个都特别卡,但查看服务器监控,各项指标均正常。

于是进系统放开php.ini中的display_errors = On让显示报错信息,然后随机选择一个站点打开“http://localhost/”访问看报错如下图

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中有100多个站点。

代码中已经明示跟C:/WINDOWS/Temp有关了,于是去定位C:/WINDOWS/Temp,结果卡得根本进不到文件夹中去,右键查看属性有214万多个文件。

214万多个文件,这是在C:/Windows/Temp文件夹上右击查看属性,这样比较快,要是直接进C:/Windows/Temp得卡死。要是服务器永远不重启不清理缓存,根据此种业务情况,Temp迟早有撑不住的一天。于是想办法清理C:/Windows/Temp,电脑管家清理了2个小时没有任何反应。估计它只是还没有遍历完,还没有到删除的那一步。

为了让系统快一点,先把IIS服务停止,退出电脑管家上“万能删除.bat”,3个多小时后处理OK了,业务恢复正常。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档