Linux中apache 2内存占用监控记录脚本

web服务器遇到一个奇怪的问题,在运行的诸多apache2进程中, 会有某个进程, 慢慢占满全部内存, 然后机器就象死了一样,
写了一个自动检查脚本,检查并杀死出问题的apache2进程,问题得到缓解,但是没有解决, 因为慢慢占满内存 ,会使linux释放掉所以的硬盘cache
并且周期性的有性能下降。用RLimitMEM参数限制内存,也不奏效,bw_mod限制流量也不奏效

今天修改了一下脚本, 在杀死出问题的进程之前,先记录此进程连接的外部的ip和端口,&">nbsp; 并且修改apache的日志格式,增加进程号字段。
查阅出问题的进程号的access.log日志,没发现啥特异的url访问,

出问题的进程所连接的外部ip,是2个ip,这2个ip的agent字段声明它们是来自sogou,是sogou的机器人。
用tcpdump对这2个ip进行抓包(tcpdump host 220.181.94.213  -s0 -w /home/sogou.cap) ,用wireshark看抓包的内容,流量很小,也没啥特殊的东西。

监控记录脚本:

#!/bin/sh
while [ 1 ]
do
ps  -U www-data -u www-data -U root -u root u |grep apache2  |while read user pid cpu mem other
do
if [ ${mem%\.*} -gt 15 ]
then
ip=$( netstat -npa |grep $pid|tr  ':' ' '|awk '{printf $6}' )
echo `date +%Y-%m-%d:%H:%M:%S` kill pid:$pid cpu:$cpu mem:$mem ip:$ip >>/var/log/apache2/autokill.log
kill -9 $pid
fi
done
sleep 30
done

时间: 2024-09-23 19:52:27

Linux中apache 2内存占用监控记录脚本的相关文章

在Linux中可视化显示内存占用情况的方法

  物理内存不足对Linux桌面系统和服务器系统的性能影响都很大.当你的计算机变慢时,要做的第一件事就是释放内存.尤其是在多用户环境以及执行关键任务的服务器环境下,内存消耗会变得更加关键,因为多个用户和应用线程会同时竞争更多的内存空间. 如果要监测系统内各种资源的使用情况(比如说CPU或内存),图形化显示是一种高效的方法,通过图形界面可以快速分析各用户和进程的资源消耗情况.本教程将给大家介绍在linux下图形化分析内存使用情况的方法,使用到命令行工具是smem. 物理内存使用情况: RSS .

linux中apache配置两个域名指向同一个ip地址不成功

问题描述 linux中apache配置两个域名指向同一个ip地址不成功 两个域名解析完毕,在linux服务器中配置apache文件后有一个域名不成功.测试过解析没问题,将有问题的域名指向其它有域名的服务器发现可用~望求高手出手帮忙~ 解决方案 看看这个 解决方案二: 看看这个

在linux中如何通过nload来监控网络使用情况

在linux中如何通过nload来监控网络使用情况 nload 是一个 linux 自由软件工具,通过提供两个简单的图形来帮助linux用户和系统管理员来实时监控网络流量以及宽带使用情况:一个是进入流量,一个是流出流量. 我真的很喜欢用nload来在屏幕上显示当前的下载速度.总的流入量和平均下载速度等信息.nload工具的报告图非常容易理解,最重要的是这些信息真的非常有用. 在其使用手册上说到,在默认情况下它会监控所有网络设备.但是你可以轻松地指定你想要监控的设备,而且可以通过方向键在不同的网络

Linux中统计路径下目录的大小脚本

Linux中统计路径下目录的大小脚本如下: 保存成total.sh,然后用total.sh 绝对路径,就能统计路径下目录的大小了 代码: #!/bin/shdu $1 --max-depth=1 | sort -n|awk '{printf "%7.2fM ----> %s\n",$1/http://www.aliyun.com/zixun/aggregation/12560.html">1024,$2}'|sed 's:/.*/\([^/]\{1,\}\)$:\

linux中512M VPS内存优化步骤详解

512M的VPS优化apache内存 查看目前占用内存 Ps aux|grep httpd 基本一个占用50M左右 ps aux|grep httpd | wc –l 一共13个,减去grep httpd 那行 12个,说明占用大约600M 超过了服务器512M内存, (相比之下nginx主进程占用50M,带着php-fpm跑,一个fpm占用2M,开启10个fpm进程,一共70M的内存就足够了.) 标准Linux Apache配置在Apache的配置文件在/etc/httpd/conf/http

linux中php使用root权限执行shell脚本

今天晚上:19:30分,这个困扰了我好久的问题终于解决,其中的原理也终于弄清楚了,总之是利用sudo来赋予Apache的用户root的执行权限,下面记录一下: 利用php利用root权限执行shell脚本必须进行以下几个步骤:(所有步骤都是我亲自实验,若有不妥可指出,谢谢!) 1. 确定一下你的Apache的执行用户是谁.注:不一定就是nobody,我自行安装的httpd,我的Apache的用户就是daemon 2. 利用visudo为你的Apache执行用户赋予root执行权限,当然还有设置无

在Linux中安装是使用系统性能监控软件Nmon

  Nmon(得名于 Nigel 的监控器)是IBM的员工 Nigel Griffiths 为 AIX 和 Linux 系统开发的一款计算机性能系统监控工具.Nmon 可以把操作系统的统计数据展示在屏幕上或者存储到一份数据文件里,来帮助了解计算机资源的使用情况.调整方向和系统瓶颈.这个系统基准测试工具只需要使用一条命令就能得到大量重要的性能数据.使用 Nmon 可以很轻松的监控系统的 CPU.内存.网络.硬盘.文件系统.NFS.高耗进程.资源和 IBM Power 系统的微分区的信息. Nmon

Linux下apache+php+mysql搭建配置记录

第1章  环境说明 1.1 系统说明 CentOS 6.4 1.2 软件说明 httpd-2.4.10.tar.gz apr-util-1.5.3.tar.gz apr-1.5.1.tar.gz pcre-8.34.tar.gz php-5.6.0.tar.bz2 libmcrypt-2.5.3.tar.gz mysql-5.1.51.tar.gz 第2章  Apache搭建说明 2.1 安装依赖包 yum install make openldap-devel ntp vim-enhanced

linux中apache和mysqld加入service系统服务中

先我们把mysql增加到linux的系统服务中去 mysql:  代码如下 复制代码 cd /usr/local/mysql/share/mysql cp mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on service mysqld restart 现在你就可以使用:service mysqld start来启动mysql了 apache:  代码如下 复制代码 cp /usr/local/ap