Unix/Linux 的 Load问题
原文网址: http://www.dbanotes.net/arch/unix_linux_load.html
几乎每个接触类 Unix 操作系统的工程师都知道如何查看系统负载。但这东西的工作机理到底是怎样的,可能没有多少能说清楚。对比了一些相关信息,加上自己的理解,做一下笔记。
什么是 Load ? 什么是 Load Average ?
Load 就是对计算机干活多少的度量(WikiPedia
: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度. Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。【最好的参考文章:UNIX® Load Average Part 1: How It Works
】
下面是一个 uptime 命令输出:
$ uptime
18:57:48 up 423 days, 3:55, 2 users, load average: 1.16, 1.12, 1.20
尽管各种信息来源的定义都不太确定。能确定的一件事情是,你不能精确获取当前时间的 Load . 最小的计算粒度是 5 秒钟(CALC_LOAD 每 5HZ 计算一次
, 5HZ 为 5秒钟,这里的 HZ 是系统定义的变量). 参见 Linux Kernel 这段代码
:
869 count -= ticks;
870 if (unlikely(count < 0)) {
871 active_tasks = count_active_tasks();
872 do {
873 CALC_LOAD(avenrun[0], EXP_1, active_tasks);
874 CALC_LOAD(avenrun[1], EXP_5, active_tasks);
875 CALC_LOAD(avenrun[2], EXP_15, active_tasks);
876 count += LOAD_FREQ;
877 } while (count < 0);
878 }
879}
如何判断系统是否已经 Over Load ?
对一般的系统来说,根据 CPU
数量去判断,如上面的例子, 如果平均负载始终在 1.2 以下,而你是 2 颗 CPU
的机器。那么基本不会出现 CPU
不够用的情况。也就是 Load 平均要小于 CPU
的数量。
这是 Solaris 性能与工具(Solaris Performance Tools ) 一书推荐的评估方法。【在这里要推荐一下这本书,尽管在 Load 这个地方没有达到我期望的那么细致。但全书揭示了非常多的性能信息。每个 DBA、架构师 的必须书。】
这么说实际上带来另外两个
相关文档:
网上看到到的方法,记录以备用。
在英文Locale下的Ubuntu
无法正常显示XP下GBK编码的中文
编辑/etc/environment文件
添加LC_CTYPE="zh_CN.GBK"一行
如下:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games"
LANG="en_US.UTF-8"
LANGU ......
http://www.ic37.com/htm_tech/2008-1/7319_150547.htm
http://www.lupaworld.com/26540/viewspace-114142.html
http://www.lupaworld.com/viewnews-17909.html
http://www.lupaworld.com/26540/viewspace-117210.html
http://www.lupaworld.com/26540/spacelist-blog-itemtypeid-2105.html
http://www.lupaworld.com/ ......
翻译:飞哥 (
http://hi.baidu.com/imlidapeng
)
版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明。
原文名称:《Linux Performance and Tuning Guidelines》
原文地址:http://www.redbooks.ibm.com/abstracts/redp4285.html
------------------------------------------------------------------- ......
一、准备工作
首先说明,下面带#号的行都是要输入的命令行,且本文提到的所有命令行都在终端里输入。启动Linux系统,并用根用户登录,进入终端模式下。
1、查看Linux内核版本
# uname -a
如果屏幕显示的是2.6.x,说明你的已经是2.6的内核,也用不着看下文了,该干什么干什么去吧!~~~如果显示的是2.4.x,那恭喜你,闯关 ......