云计算技术

阿里云备案终审 阿里云服务器IO偏高后

...

我也查了一些之前的日志,发现存在很多类似的访问记录。因为阿里云盾功能还是挺强大的,所以一般的漏洞攻击都会被拦截,但这一类IP却逃过了云盾法眼。仔细看了这类IP的访问路径,发现都是访问一些站点不存在的路径,我猜测,这类IP是通过站点探测来寻找站点漏洞。所以初步判断,网站打不开就是因为这类恶意IP像采集器一样并发的探测访问我的博客

不过虽然我的带宽只有1M,但也不至于被一个恶意IP搞垮吧。于是在阿里云控制台查了下CPU,发现CPU使用率也就10%左右,看来CPU没问题。随后,查看硬盘情况,发现硬盘IO读写非常高,看图:

网上查阅了一些解决硬盘IO偏高的相关资料,由于对这一块了解的很少,毫无头绪,无奈只能开启工单咨询阿里技术人员。阿里技术人员的回复是,可以安装iotop查看哪个进程IO读写高。因为iotop和top命令相似,都是实时监控的,而且我的博客平时IO都很正常,只有一些恶意IP持续访问时才会出现IO偏高。所以用iotop查看对我来说作用不大,因为不知道恶意IP什么时候会来访问我的站点。于是想通过写日志的方式进行记录,又发现写日志记录进程读写情况并不是那么容易,泪奔。

再一次求助阿里技术人员,希望提供个能记录进程读写日志的脚本。阿里技术人员回复说这个只能自己去折腾,超出他们范围。反复求助后,估计他们也有点烦了,技术人员索要ESC权限帮我查日志,感激涕零(更反映自己对运维方面了解太少,要加强学习==)。

阿里技术人员最后查出的问题是,httpd占用过高,导致最后内存不够用:

[[email protected]~]#cat/var/log/messages|grepmem|more

Jan306:34:49lmodekernel:lowmem_reserve[]:0000

Jan306:34:49lmodekernel:Outofmemory:Killprocess3300(httpd)score255orsacrificechild

Jan306:36:54lmodekernel:httpdcpuset=/mems_allowed=0

Jan306:36:54lmodekernel:[<ffffffff81133ac3>]out_of_memory+0x263/0x320

Jan306:36:54lmodekernel:mapped:428shmem:105pagetables:1152bounce:0</ffffffff81133ac3></ffffffff81133ac3>

我的博客物理内存是1G,平时pv数较少,难道还要扩大内存?用free -m 查了下内存使用情况:

[[email protected]/]#free-m

totalusedfreesharedbufferscached

Mem:9954195760838

-/+buffers/cache:372623

Swap:000

大部分时间内存使用情况都很正常。其实大家很容易发现,Swap分区为0,阿里云默认是没有分配Swap分区的。但当时的我竟然毫无发觉,心里只顾着思索httpd进程内存占用过高是不是程序有问题,或者使用缓存会不会解决相应问题。