有个服务器load average 达20-40, 后查出是mount中的一个分区出了故障,查出问题fuser -k -v -m /mnt/nfs (注:fuser-查找或删除正在使用某文件的进程,fuser filename,fuser -k filena), 然后load average就下来了,
顺附load average说明:
在Linux系统中,uptime、w、top等命令都会有系统平均负载load average的输出,那么什么是系统平均负载呢?
系统平均负载被定义为在特定时间间隔内运行队列中的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中:
- 它没有在等待I/O操作的结果
- 它没有主动进入等待状态(也就是没有调用'wait')
- 没有被停止(例如:等待终止)
例如:
[root@www2 init.d]# uptime
7:51pm up 2 days, 5:43, 2 users, load average: 8.13, 5.90, 4.94
命令输出的最后内容表示在过去的1、5、15分钟内运行队列中的平均进程数量。
一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题。对 于上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的。
load average也可以理解为每秒钟CPU等待运行的进程个数吧
BTW,
e2fsck拯救磁盘
有时候因为突然断电或者其他原因导致磁盘错误,就需要用到磁盘修复工具e2fsck了。命令如下:
e2fsck /dev/hdax -a
注意:一般情况下,可以用e2fsck -p /dev/hdax 方法自动修复损坏了的分区,但e2fsck不能修复已经mount的硬盘。
指令:e2fsck
使用权限 : 超级使用者
使用方式 : e2fsck [-pacnydfvFV] [-b superblock] [-B blocksize] [-l|-L bad_blocks_file] [-C fd] device
说明 : 检查使用 Linux ext2 档案系统的 partition 是否正常工作
参数 :
device : 预备检查的硬盘 partition,例如:/dev/sda1
-a : 对 partition 做检查,若有问题便自动修复,等同 -p 的功能
-b : 设定存放 superblock 的位置
-B : 设定单位 block 的大小
-c : 检查该partition 是否有坏轨
-C file : 将检查的结果存到 file 中以便查看
-d : 列印 e2fsck 的 debug 结果
-f : 强制检查
-F : 在开始检查前,将device 的 buffer cache 清空,避免有错误发生
-l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
-L bad_blocks_file : 设定坏轨的block资料存到 bad_blocks_file 里面,若无该档则自动产生
-n : 将档案系统以[唯读]方式开启
-p : 对 partition 做检查,若有问题便自动修复
-v : 详细显示模式
-V : 显示出目前 e2fsck 的版本
-y : 预先设定所有检查时的问题均回答[是]
例子 :
检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] :
e2fsck -a -y /dev/hda5
注意 :
大部份使用 e2fsck 来检查硬盘 partition 的情况时,通常都是情形特殊,因此最好先将该 partition umount,然后再执行 e2fsck 来做检查,若是要非要检查 / 时,则请进入 singal user mode 再执行。
阅读(2560) | 评论(0) | 转发(0) |