rocing.cn
域名年龄: 15年11个月12天HTTP/1.1 200 OK 访问时间:2014年10月21日 15:45:58 服务器:Apache/2.2.14 (Ubuntu) 过期时间:1981年11月19日 16:52:00 缓存控制:no-store, 不缓存,必须更新, post-check=0, pre-check=0 其他指令:不缓存 动作:Accept-Encoding Content-Encoding: gzip 设置Cookie:PHPSESSID=2df25f7f93248ffa82737bef5fe4cd21; path=/ 设置Cookie:viewarticle=1413877558; path=/ Keep-Alive: timeout=15, max=100 连接:Keep-Alive Transfer-Encoding: chunked 类型:text/html; charset=UTF-8 网站编码:UTF-8
大鹏的博客(rocing's blog)我们研究$,难道就是为了¥?博客归档标签链接登陆压力测试衡量CPU的三个指标:CPU Utilization、Load Average和Context Switch Raterocing 发表于 2013-07-04, 3:43 PMCPU Utilization 好理解,就是CPU的利用率,75%以上就比较高了(也有说法是80%或者更高)。除了这个指标外,还要结合Load Average和Context Switch Rate来看,有可能CPU高是因为后两个指标高导致的。Load Average ,这个很难衡量。网上搜了一圈,还没见到几个合理的解释。我100个并发用户测试数来这两个值是:77.534%,6.108,CPU利用率比较高,Load Average也好像有点高。后来发现了如下两片博文: 理解Load Average做好压力测试 ,“Load Average是 CPU的 Load,它所包含的信息不是 CPU的使用率状况,而是在一段时间内 CPU正在处理以及等待 CPU处理的进程数之和的统计信息,也就是 CPU使用队列的长度的统计信息。 ”,基本解释了multi-process,multi-thread程序的原理。理解Linux处理器的负载均值(翻译) ,简单说起来就一句话:Load Average < CPU个数 * 核数 *0.7比如1个1核CPU,Load Average < 1 * 1 * 0.7;1个4核的CPU,Load Average必须 < 1 * 4 * 0.7 = 2.8。查看cpu的信息:grep 'model name' /proc/cpuinfoContext Switch Rate 。就是Process(Thread)的切换,如果切换过多,会让CPU忙于切换,也会导致影响吞吐量。《高性能服务器架构 》这篇文章的第2节就是说的是这个问题的。究竟多少算合适?google了一大圈,没有一个确切的解释。Context Switch大体上由两个部分组成:中断和进程(包括线程)切换,一次中断(Interrupt)会引起一次切换,进程(线程)的创建、激活之类的也会引起一次切换。CS的值也和TPS(Transaction Per Second)相关的,假设每次调用会引起N次CS,那么就可以得出Context Switch Rate = Interrupt Rate + TPS* NCSR减掉IR,就是进程/线程的切换,假如主进程收到请求交给线程处理,线程处理完毕归还给主进程,这里就是2次切换。也可以用CSR、IR、TPS的值代入公式中,得出每次事物导致的切换数。因此,要降低CSR,就必须在每个TPS引起的切换上下功夫,只有N这个值降下去,CSR就能降低,理想情况下N=0,但是无论如何如果N >= 4,则要好好检查检查。另外网上说的CSR<5000,我认为标准不该如此单一。其他信息:这三个指标在LoadRunner中可以监控到;另外,在linux中,也可以用vmstat查看r(Load Arerage),in(Interrupt)和cs(Context Switch)#vmstat 1 5procs --------------memory------------- ----swap-- ---io-- -system------cpu----r b swpd free buff cache si so bi bo in cs us sy id wa0 0 244644 29156 415720 2336484 0 0 1 49 2 1 1 0 98 00 0 244644 29140 415720 2336484 0 0 0 28 9 115 0 0 99 10 0 244644 29140 415720 2336484 0 0 0 24 62 256 0 0 100 00 0 244644 29140 415720 2336484 0 0 0 0 5 93 0 0 100 00 0 244644 29140 415720 2336484 0 0 0 0 58 255 0 0 100 0Interrupt Rate包括内核由于进程的时间片中断。(在 Linux 2.6 中,系统时钟每 1 毫秒中断一次时钟频率,用 HZ 宏表示,定义为 1000,即每秒中断 1000 次。系统不一样,内核不一样配置100、250的都有。)内核的时钟频率可以通过如下命令知道cat /boot/config-`uname -r` | grep '^CONFIG_HZ='CONFIG_HZ=100每秒总的时钟中断数就是 = cpu个数 * 核数 * CONFIG_HZcat /proc/interruptsCPU0 CPU1 CPU2 CPU3 LOC: 97574747 52361843 105207680 69447653 Local timer interruptsRES: 107368 257510 98635 186294 Rescheduling interruptsCAL: 14174 14206 14164 194 function call interruptsTLB: 1007949 853117 992546 591410 TLB shootdowns可以查看中断的类型以及次数后记:发现一篇Linux性能监控的文章,特贴在这里,供参考http://blog.csdn.net/tianlesoftware/archive/2011/02/21/6198780.aspx==========================================================================发表在:系统&服务2 条评论阅读 5557 次面试题:用户更新数据时,修改了database数据的同时需要修改memcacherocing 发表于 2013-04-11, 2:07 PM面试题:用户更新数据时,修改了database数据的同时需要修改memcache,为什么facebook这篇文章里面推荐用delete key的方法来更新cache,而不是直接update?配图最后一句告诉你原因了:We choose to delete cached data instead of updating it because deletes are idempotent发表
© 2010 - 2020 网站综合信息查询 同IP网站查询 相关类似网站查询 网站备案查询网站地图 最新查询 最近更新 优秀网站 热门网站 全部网站 同IP查询 备案查询
2024-05-23 14:24, Process in 0.0056 second.