
ps -eo min_flt,maj_flt,pid,%cpu,%mem,pagein,args --sort=min_flt
min_flt 是页分配是的缺页
maj_flt, 是磁盘读写时的缺页
pagein 是 从磁盘加载页面回物理内存。
一个理想的程序,稳定运行的时候这几项数值应该不会再变化。如果发现程序每秒的数值增加的比较多,那就是有问题了。
不知道你从哪里看到的一个 缺页率的概念。微软的文档 只说page fault per second
http://technet.microsoft.com/en-us/library/cc768048.aspx。
SAP的文档 http://help.sap.com/saphelp_nw04/helpdata/en/84/7ed390d81f11d188be0000e83539c3/content.htm
这里有个缺页率的说法? 指的其实就是 Pages Input/sec 。
如果是这个话,linux你可以用ps 命令,top 命令, perf命令之类查看这几个值,然后算一下每秒个数吧。我在另外一个帖子已经回复你了。
-----------------------------------------------
至于你这里说的 主存的总次数,这个东西几本不可能统计的出来。你知道内存都是分为一个page 一page,比如说4k的大小。 但程序内存访问肯定不是每次都是4k大小的。
cpu是有写内存访问相关的硬件计数信息,这个可以通过一些性能测试工具,可以算出cpu上的内存带宽。但这个其实和你那恶主存总访问次数关系不大,因为我看你这个是想用来计算所谓的“缺页率”的。内存访问其实很多时候都不是在一个page上面连续的。有可能地址是离散的,没法统计什么的主存访问计数。
另外cpu的cache有很多级,L1 cache , L2 L3 cache扽。真正的到达 主存的其实已经很少了,最求程序性能其实很多 时候关注的是 L1 L2 这些级别缓存的命中率。这些都可以通过性能测试工具读取得到。
------------------------------------
至于为什么有page fault可以有很准确的计数,是因为发生page fault的时候,硬件会通过中断通知系统内核。 然后其实微软的文档说的 page input , page output等都是说的swap交换内存到磁盘的磁盘 *** 作。这个信息前面的帖子我前面也给你列出来了。还有vmstat这些命令应该也是可以看到 swap分区的使用情况的。
这东西其实没必要那么死扣字眼,理解原理就可以了。想page fault这个,就知道为什么会影响性能,怎么判断page fault是不是对程序影响很大就行了。
看你老来提问,写了好多。。。。。。。
用的fedora吧?ubuntu早就已经不用这种打开新窗口的方式了。解决方法:
1.点击 计算机
2.编辑->首选项->
3.视图->默认视图->查看新建文件夹使用(选择 列表视图)->将文件夹放在文件前
行为->行为->总是在浏览器窗口中打开
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)