linux kjournald 进程IO高的处理办法
案例:开发部门反映该服务器(Mysql)ssh登录时响应慢,甚至无响应,登录失败。分析:初步判断是内存不足或者高io导致,分别用top和free命令查看了,内存没问题。然后锁定磁盘IO,进程追踪。Kjournald这个进程主要是在ext3系统向磁盘内进行写入和读取数据从而产生的占用大量的cpu和内存资源.kjournald是ext3文件系统刷数据的内核线程,它高跟IO读
案例:
开发部门反映该服务器(Mysql)ssh登录时响应慢,甚至无响应,登录失败。
分析:
初步判断是内存不足或者高io导致,分别用top和free命令查看了,内存没问题。然后锁定磁盘IO,进程追踪。
由于不知道哪个进程产生的高的IO操作,所以先追踪下是哪个进程的IO较高。
1、停止系统日志
/etc/init.d/syslog stop
2、停止审计日志
/etc/init.d/auditd stop
3、启用block_dump
echo 1> /proc/sys/vm/block_dump
4、通过下面命令查找出IO高的进程
dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
2056 kjournald
1087 pdflush
3 cronolog
1 mysqld
这里我们发现kjounald进程占用IO较高
5、关闭block_dump
echo 0 >/proc/sys/vm/block_dump
6、启动系统日志和审计
/etc/init.d/syslog start
/etc/init.d/auditd start
根据系统需要也可以不启动,这边业务主要是日志系统(mysql数据库主要是写入操作)
kjounald进程是ext3系统的日志进程,我的处理方法就是关闭它,因为mysql数据库有自己的日志
1、查看文件系统首付开启日志功能了
tune2fs -l /dev/sda7 | grep 'has_journal'
如果返回结果有has_journal说明系统开启了日志功能
2、关闭mysql
service mysql stop
3、重新以只读方式打开
mount -o remount -o ro /dev/sda7
4、去掉文件系统has_journal属性
tune2fs -O ^has_journal /dev/sda7
5、重新以读写方式挂载文件系统
mount -o remount -o rw /dev/sda7
6、启动mysql
service mysql start
重新进行观察。
更多推荐
所有评论(0)