仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3098|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计linux loadavg 算法

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:30:07 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
多个成员之间重复做相同的工作,很容易因为交流沟通的时候没有进行一致性的文档要求而出现不明错误,严重影响开发进度,导致在预定时间内无法完成该项目或者完成的项目跟原先计划所要实现的项目功能不符合。算法   linux loadavg 算法


宣布人:biti_rainy



明天读linux source code关于cpu load 的盘算办法,同时在谷歌上搜刮各处参考,晕乎了半天,终究弄分明cpu load 的盘算办法了,并非复杂的挪动算术均匀。


关于linux来讲,采样盘算load工夫距离为5秒,这都是在source code外面界说的固定命字,其采样布局经由过程静态内存文件体系 /proc/loadavg 可以静态的失掉合时数据,其他东西的输入,好比 uptime / top/sar 等都是读该内存数据所发生的。咱们在这里次要精细精美kernel的算法。

关于5秒的距离,是静态地采样cpu形态数据,也就是run queue size ,这包含正在cpu中running的历程数目和在cpu守候队列外面的历程数目。关于linux来讲,实践上管帐算1分钟、5分钟、15分钟的挪动均匀。为此起首咱们要引见linux 外面界说的3个常量:

#define EXP_1 1884 /* 1/exp(5sec/1min) */
#define EXP_5 2014 /* 1/exp(5sec/5min) */
#define EXP_15 2037 /* 1/exp(5sec/15min) */

三个常量分离暗示1/5/15分钟的常量,盘算办法是:

1884 = 2048/(power(e,(5/(60*1)))) /* e = 2.71828 */

2014 = 2048/(power(e,(5/(60*5))))

2037 = 2048/(power(e,(5/(60*15))))

咱们假定前一时辰按常量1884盘算的load为 load1(t-1),以后采样run queue size 为 rq1,则以后load1(t) = ((load1(t-1) * 1884) + rq1 * (2048 - 1884))/2048

同理可以5分钟和15分钟挪动均匀的算法分离为 load5(t) = ((load5(t-1) * 2014) + rq1 * (2048 - 2014))/2048和load_15(t) = ((load15(t-1) * 2037) + rq1 * (2048 - 2037))/2048

由此可以看出,挪动均匀距离越大,以后run queue size 对挪动均匀的影响趋势减小。

至于为何取这个数,触及到微积分方面的常识了,如许做出的图像更光滑。


  既然选择了PHP,就要坚持学下去!大家有没有问自己为什么会选择学习PHP呢?就我个人而言,完全是因为兴趣,因为我的专业和计算机完全无关,但是就是对编程很赶兴趣,尤其对网络编程、web开发特别赶兴趣。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-22 10:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表