« 上一篇下一篇 »

服务器性能越来越卡的原因,php-cgi.exe导致CPU占用100%解决方法详解

     相信大多数朋友都会遇到这种情况,我们在使用iis作为服务的经常出现php-cgi.exe占用比较大CPU使用率,有时还会飙升到100%,虽然只是瞬间,但是已经非常的影响服务器的良好运行,如果一直让他这样持续下去,就会导致网站被访问时候出现非常卡的现象

我们检查发现tmp目录下已经产生了大量临时碎片文件:

目前临时碎片文件还在刷新 当前26w+

     我们应该都知道,在我们使用电脑的过程中,会不断的保存、删除一些文件,我们对电脑进行安装或者卸载文件的同时留下的文件碎片,这些碎片会各自分散在我们的电脑中,而这些文件占用我们电脑硬盘空间内存,导致我们电脑运行速度越来越慢,那么,我们在使用电脑的时候如何尽可能的使文件碎片减少产生,产生以后怎么清理呢

我们使用命令删除临时文件

 

删除完接近200w临时文件后,系统的占用的确有了明显的改善。

 

 
同时以后也需要定期检查下,为什么产生了这么多phpsession文件。从而逐步进行优化。

 关于文件碎片的小知识:

1.什么是文件碎片

  磁盘上的文件和文件夹通常占用磁盘的多个簇,并且每个簇大多分散在磁盘上,这些分散的簇称为文件碎片。

  当应用程序所需的物理内存不足时,一般操作系统会在硬盘中产生临时交换文件,用该文件所占用的硬盘空间虚拟成内存。虚拟内存管理程序会对硬盘频繁读写,产生大量的碎片,这是产生硬盘碎片的主要原因。其他如IE浏览器浏览信息时生成的临时文件或临时文件目录的设置也会造成系统中形成大量的碎片。文件碎片一般不会在系统中引起问题,但文件碎片过多会使系统在读文件的时候来回寻找,引起系统性能下降,严重的还要缩短硬盘寿命。另外,过多的文件碎片还有可能导致存储文件的丢失。

2.文件碎片是如何产生的

  (1)在文件操作过程中,Windows系统可能会调用虚拟内存来同步管理程序,这样就会导致各个程序对硬盘频繁读写,从而产生文件碎片。

  (2)还有一种情况就是当中间的一个扇区内容被删除后,新写入一个较小的文件,这样在这个文件两边就会出现一些空间,这时候 再写入一个文件,两段空间的任意一部分都不能容纳该文件,这时候就需要将文件分割成两个部分,碎片再次产生了。

  (3)最常见的就是下载电影之类的大文件,这期间大家一般都会处理一下其它事情,而下载下来的电影文件被迫分割成若干个碎片存储于硬盘中。因此下载是产生碎片的一个重要源头。还有就是经常删除、添加文件,这时候如果文件空间不够大,就会产生大量的文件碎片,随着文件的删改频繁,这种情况会日益严重。

    文件碎片对虚拟化影响有许多企业已经开始利用虚拟化的优势来进行服务器整合及数据中心碳排放量的降低。但这种着眼未来的技术所具备的优势还不止如此,虚拟化性能所面临的关键性挑战在于——文件碎片的处理。

  文件碎片是存在于非虚拟化环境中且多年来一直悬而未决的一大性能挑战。但虚拟化所带来的碎片问题更加严峻,所需的解决方案也是前所未有的。虚拟机能够利用硬盘分区,让整个磁盘系统看起来都能为虚拟机所用。但是在虚 拟化层下,硬件经常要存储系统所产生的文件,要利用整个硬盘所有分区的磁盘存储系统和碎片文件。

  虚拟机都有自己的通过主机系统传递的输入/输出请求。因此每个文件请求都会产生很多输入/输出请求——从最低程度上说客户机系统会产生一个请求,然后主机系统再产生一个请求。但是在常规的粉碎环节,尤其是在虚拟机磁盘活动频繁的时候,文件将被粉碎为成百上千个文件碎片。可想而知每个请求的文件和文件的每个碎片所产生的若干输入/输出请求会演变成多么狂乱的行动。对性能的影响将会多么可怕!

  对于虚拟机而言,常规的磁盘碎片整理程序是很关键的,这就要利用磁盘碎片技术。基础性的磁盘碎片整理程序,甚至是预设定的磁盘碎片整理程序无法跟上虚拟化的粉碎速度。最可行的也是目前唯一能够提供的解决方案就是持续性后台粉碎解决方案。这种解决方案能够处理那些后台运行的或者闲置的资源;这样是对磁盘碎片整理程序性能有非常积极的作用,性能也总能达到最大化。

     服务器运行到一定的时间我们都需要定期的对碎片进行清理,这样才能让访客用户有一个更好的浏览体验。