背景
最近一直收到产品环境其中一台server的磁盘占用超过90%的警告,之前为了解决这个问题编写了一个压缩和删除历史log的脚本,正常情况来说应该不会再报这个警告,因为脚本是每天都在跑,所以每天增长的log的大小应该不至于占用很多的磁盘空间,但是实际情况却是每隔两三天就会收到一次警告,然后不得不手动的清理一些还没有被脚本压缩以及删除的log,从而释放一些空间,但是这不是长久之计,所以就详细的去查了这个问题。
解决
再次受到这个警告之后,我通过SSH连到了这台机器,然后通过df -h的命令查看了一下各个挂载磁盘的使用率如下图:
从图中可以看到可以看到 /dev/xvdb1这个磁盘被挂载在/alidata1/这个目录下,并且已经使用了34G(90%)
然后就要查看/alidata1下到底是哪个文件或者文件夹占用了这么多的磁盘空间,我们通过du -h --max-depth=1来查看,如下图:
我们可以看到 /alidata1下的所有文件及文件夹占用的空间是22G,和我们通过df -h查看出来的磁盘占用34G相差12G,这是为什么?这12G的空间到底是被谁占用了?
于是去网上查了一些资料,原来是因为在Linux上删除一个进程正在写入的文件的时候,虽然已经被我们删除了,但是只要进程还在,那个文件就不会真正被删除,只是被临时存放到系统的某个地方,有点类似于Windows的回收站。通过lsof可以查看没有被真正删除的文件。如下图
从图中我们可以看出有四个占用空间比较大的没有被真正删除的文件,这四个文件分别是809和808的java进程console的输出log。之前被手动删除,但是由于没有重启进程导致文件一直还在,占用了大量空间。在通过重启808和809的java进程之后,磁盘的警告恢复了,通过df和du查看的结果如下:
df -h
从新的结果中可以看到df查看的磁盘占用空间和du查看的文件中下文件的占用空间一致了。
总结
所以如果以后碰到一些不合理的一些磁盘占用情况,我们可以通过df和du来查看磁盘占用空间和实际的文件占用空间是否有差异,如果有差异通过lsof命令查看有哪些没有被真正删除的文件,确认是被哪个进程占用,通过重启进程的方式来释放这些空间。
但是前段时间阿南发现宝塔Linux面板偶尔出现CPU负载状态过高,导致站点加载速度时间过长,,给大家的浏览体验带来了一定的影响。后来阿南在网上查阅相关资料发现解决问题的方法五花八门,各种各样的说法都有,让你无从下手。最后还是通过某位服务器运维的大牛指点,才把这个问题解决,并且得到了反馈很好。接下来阿南就把这个方法分享出来,希望能够帮助到各位站长。
阿南的云服务器安装的是宝塔Linux面板, 建站环境所使用的是LNMP,Nginx 115、MySQL 55、PHP-72 ,基本情况了解了下面直接看 *** 作。首页,进入php72的管理页面,选择安装一个opcache缓冲器,用于加速PHP脚本,如下图:
接着在配置修改选择 将最大脚本运行时间修改为60,最后将并发方案设为30并发 ( 注意 :宝塔面板通常会自动根据你的服务器配置给你设置合适的并发,如果你觉得不够用可以自己设置),接着在性能调整中将最大空闲进程数设置为20。如下图:
按照以上这个方法优化,阿南的云服务器发现并没有出现CPU负载状态过高了,也就是说这个方法是非常有效的。但是,对于服务器这块阿南并不是专业的,所以不能够保证这个方法对于大家都是有效的,如果此方法效果不明显建议大家可以通过升级服务器配置解决此问题。经过查阅db2官方帮助文档,发现有一个参数DB2_BACKUP_USE_DIO,设置成on之后,可以达到此效果,经过测试,db2备份时,系统cache不再增长,在db2 95版本设置此参数需要重启数据库实例,db2 95以后版本设置之后,再下一次备份时生效。
有的时候我们在用电脑的时候会收到电脑cpu占用过高的通知,遇到这种情况我们该如何处理呢,那么,电脑cpu占用过高怎么办呢下面跟我一起来了解一下吧!
电脑cpu占用过高怎么办呢CPU占用过高的原因一般有以下几种:
1、当机器慢下来的时候,首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较高的比例,如果是某个大程序那还可以原谅,在 关闭该程序后只要CPU正常了那就没问题;如果不是,那你就要看看是什么程序了,当你察不出这个进程是什么的时候就去google或者baidu搜。 有时只结束是没用的,在xp下我们可以结合msconfig里的启动项,把一些不用的项给关掉。在2000下可以去下个winpatrol来用。
2、一些常用的软件,比如浏览器占用了很高的CPU,那么就要升级该软件或者干脆用别的同类软件代替,有时软件和系统会有点不兼容,当然我们可以试下xp系统下给我们的那个兼容项,右键点该exe文件选兼容性。
3、svchostexe有时是比较头痛的,当你看到你的某个svchostexe占用很大CPU时你可以去下个aports或者fport来检察其对应的程序路径,也就是什么东西在调用这个svchostexe,如果不是c:Windowssystem32(xp)或c:winntsystem32(2000)下的,那就可疑。升级杀毒软件杀毒吧。
4、右击文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了。官方的解释:先点左键选中,再右键(不是很理解)。非官方:通过在桌面点右键-属性-外观-效果,取消”为菜单和工具提示使用下列过度效果(U)“来解决。还有某些杀毒软件对文件的监控也会有所影响,可以关闭杀毒软件的文件监控;还有就是对网页,插件,邮件的监控也是同样的道理。
5、一些驱动程序有时也可能出现这样的'现象,最好是选择微软认证的或者是官方发布的驱动来装,有时可以适当的升级驱动,不过记得最新的不是最好的。
6、CPU降温软件,由于软件在运行时会利用所以的CPU空闲时间来进行降温,但Windows不能分辨普通的CPU占用和降温软件的降温指令之间的区别,因此CPU始终显示100%,这个就不必担心了,不影响正常的系统运行。
7、在处理较大的word文件时由于word的拼写和语法检察会使得CPU累,只要打开word的工具-选项-拼写和语法把”检察拼写和检察语法“勾去掉。
8、单击avi视频文件后CPU占用率高是因为系统要先扫描该文件,并检察文件所有部分,并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级,去掉为了快速搜索,允许索引服务编制该文件夹的索引的勾。
cpu占用过高的解决方法
防杀毒软件造成故障
由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。
驱动没有经过认证,造成CPU资源占用100%
大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。 处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。
病毒、木马造成
大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。
系统服务
控制面板—管理工具—服务—RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。
启动项
开始->;运行->;msconfig->;启动,关闭不必要的启动项,重启。
查看“Svchost”进程
Svchostexe是Windows XP系统的一个核心进程。svchostexe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchostexe的存在。一般在Windows 2000中svchostexe进程的数目为2个,而在Windows XP中svchostexe进程的数目就上升到了4个及4个以上。
查看网络连接
主要是网卡。
查看网络连接
当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。
要解决此问题,我们可以通过修改注册表来解决:在注册表编辑器中依次展开
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的DWORD值。然后双击该值,在打开的窗口中键入下列数值并保存退出:
如果计算机有512MB以上的内存,键入“1024”;如果计算机内存小于512 MB,键入“256”。看看是不是Windows XP使用鼠标右键引起CPU占用100%:
在资源管理器里面使用鼠标右键会导致CPU资源100%占用,我们来看看是怎么回事
征兆:
在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题:
任何文件的拷贝 *** 作在那个时间将有可能停止相应
网络连接速度将显著性的降低
所有的流输入/输出 *** 作例如使用Windows Media Player听音乐将有可能是音乐失真成因:
当你在资源管理器里面右键点击一个文件或目录的时候,当快捷菜单显示的时候,CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。
解决方法:
方法一:关闭“为菜单和工具提示使用过渡效果”
1)点击“开始”--“控制面板”
2)在“控制面板”里面双击“显示”
3)在“显示”属性里面点击“外观”标签页
4)在“外观”标签页里面点击“效果”
5)在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。
方法二:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录。然后再使用鼠标右键d出快捷菜单。
解决方案
将mysqld的内存库函数替换成tcmalloc,相比ptmalloc,tcmalloc可以更好的支持高并发调用。
修改mycnf,添加如下参数并重启
[mysqld_safe]malloc-lib=tcmalloc
上周五早上7点执行的 *** 作,到现在超过72小时,期间该实例没有再出现cpu长期飙高的情形。
以下是修改前后cpu使用率对比
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)