这个命令,有两大用处,一个是看您的机器最近有没有被重启,或都因为硬件等缘由被重启过,另外一个就是看看您的cpu 负载如何?
uptime
10:19:04 up 257 days, 18:56, 12 users, load average: 2.10, 2.10,2.09缓存
一、10:19:04 //系统当前时间
二、up 257 days, 18:56 //主机已运行时间,时间越大,说明你的机器越稳定。
三、12 user //用户链接数,是总链接数而不是用户数
四、load average // 系统平均负载,统计最近1,5,15分钟内运行队列中的平均进程数量服务器
前面三项很容易理解,对于第四项的解释,从网上找到一篇分析得很是易懂的文章
不少人会这样理解负载均值:三个数分别表明不一样时间段的系统平均负载(一分钟、五分钟、以及十五分钟),它们的数字固然是越小越好。数字越高,说明服务器的负载越 大,这也多是服务器出现某种问题的信号。ide
而事实不彻底如此,是什么因素构成了负载均值的大小,以及如何区分它们目前的情况是 “好”仍是“糟糕”?何时应该注意哪些不正常的数值?性能
回答这些问题以前,首先须要了解下这些数值背后的些知识。咱们先用最简单的例子说明, 一台只配备一块单核处理器的服务器。ui
一只单核的处理器能够形象得比喻成一条单车道。设想下,你如今须要收取这条道路的过桥费 -- 若是您忙于处理那些将要过桥的车辆。你首先固然须要了解些信息,例如车辆的载重、以及还有多少车辆正在等待过桥。若是前面没有车辆在等待,那么你能够告诉后面的司机经过。 若是车辆众多,那么须要告知他们可能须要稍等一会。spa
所以,须要些特定的代号表示目前的车流状况,例如:线程
•0.00 表示目前桥面上没有任何的车流。 实际上这种状况与 0.00 和 1.00 之间是相同的,总而言之很通畅,过往的车辆能够丝绝不用等待的经过。
•1.00 表示恰好是在这座桥的承受范围内。 这种状况不算糟糕,只是车流会有些堵,不过这种状况可能会形成交通愈来愈慢。
•超过 1.00,那么说明这座桥已经超出负荷,交通严重的拥堵。 那么状况有多糟糕? 例如 2.00 的状况说明车流已经超出了桥所能承受的一倍,那么将有多余过桥一倍的车辆正在焦急的等待。3.00 的话状况就更不妙了,说明这座桥基本上已经快承受不了,还有超出桥负载两倍多的车辆正在等待。blog
上面的状况和处理器的负载状况很是类似。一辆汽车的过桥时间就比如是处理器处理某线程的实际时间。Unix 系统定义的进程运行时长为全部处理器内核的处理时间加上线程在队列中等待的时间。队列
和收过桥费的管理员同样,你固然但愿你的汽车(操做)不会被焦急的等待。因此,理想状态下,都但愿负载平均值小于 1.00 。固然不排除部分峰值会超过 1.00,但久而久之保持这个状态,就说明会有问题,这时候你应该会很焦急。进程
“因此你说的理想负荷为 1.00 ?”
嗯,这种状况其实并不彻底正确。负荷 1.00 说明系统已经没有剩余的资源了。在实际状况中 ,有经验的系统管理员都会将这条线划在 0.70:
•“须要进行调查法则”: 若是长期你的系统负载在 0.70 上下,那么你须要在事情变得更糟糕以前,花些时间了解其缘由。
•“如今就要修复法则”:1.00 。 若是你的服务器系统负载长期徘徊于 1.00,那么就应该立刻解决这个问题。不然,你将半夜接到你上司的电话,这可不是件使人愉快的事情。
•“凌晨三点半锻炼身体法则”:5.00。 若是你的服务器负载超过了 5.00 这个数字,那么你将失去你的睡眠,还得在会议中说明这状况发生的缘由,总之千万不要让它发生。
那么多个处理器呢?个人均值是 3.00,可是系统运行正常!
哇喔,你有四个处理器的主机?那么它的负载均值在 3.00 是很正常的。
在多处理器系统中,负载均值是基于内核的数量决定的。以 100% 负载计算,1.00 表示单个处理器,而 2.00 则说明有两个双处理器,那么 4.00 就说明主机具备四个处理器。
回到咱们上面有关车辆过桥的比喻。1.00 我说过是“一条单车道的道路”。那么在单车道 1.00 状况中,说明这桥梁已经被车塞满了。而在双处理器系统中,这意味着多出了一倍的负载,也就是说还有 50% 的剩余系统资源 -- 由于还有另外条车道能够通行。
因此,单处理器已经在负载的状况下,双处理器的负载满额的状况是 2.00,它还有一倍的资源能够利用。
多核与多处理器
先脱离下主题,咱们来讨论下多核心处理器与多处理器的区别。从性能的角度上理解,一台主机拥有多核心的处理器与另台拥有一样数目的处理性能基本上能够认为是相差无几。固然实际状况会复杂得多,不一样数量的缓存、处理器的频率等因素均可能形成性能的差别。
但即使这些因素形成的实际性能稍有不一样,其实系统仍是以处理器的核心数量计算负载均值 。这使咱们有了两个新的法则:
•“有多少核心即为有多少负荷”法则: 在多核处理中,你的系统均值不该该高于处理器核心的总数量。
•“核心的核心”法则: 核心分布在分别几个单个物理处理中并不重要,其实两颗四核的处理器 等于四个双核处理器 等于 八个单处理器。因此,它应该有八个处理器内核。
让咱们再来看看 uptime 的输出
uptime 23:05 up 14 days, 6:08, 7 users, load averages: 0.65 0.42 0.36
这是个双核处理器,从结果也说明有不少的空闲资源。实际状况是即使它的峰值会到 1.7,我也历来没有考虑过它的负载问题。
那么,怎么会有三个数字的确让人困扰。咱们知道,0.6五、0.4二、0.36 分别说明上一分钟、最后五分钟以及最后十五分钟的系统负载均值。那么这又带来了一个问题:
咱们以哪一个数字为准?一分钟?五分钟?仍是十五分钟?
其实对于这些数字咱们已经谈论了不少,我认为你应该着眼于五分钟或者十五分钟的平均数 值。坦白讲,若是前一分钟的负载状况是 1.00,那么仍能够说明认定服务器状况仍是正常的。 可是若是十五分钟的数值仍然保持在 1.00,那么就值得注意了(根据个人经验,这时候你应该增长的处理器数量了)。
那么我如何得知个人系统装备了多少核心的处理器?
在 Linux 下,可使用
cat /proc/cpuinfo
获取你系统上的每一个处理器的信息。若是你只想获得数字,查看有几个cpu,那么就使用下面的命令:
grep 'model name' /proc/cpuinfo | wc -l