1.根据访问IP统计UV
awk '{print $1}' access.log|sort | uniq -c |wc -l
2.统计访问URL统计PV
awk '{print $7}' access.log|wc -l
3.查询访问最频繁的URL
awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more
4.查询访问最频繁的IP
awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more
5.根据时间段统计查看日志
cat access.log| sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p'|more
不知道你从哪里看到的一个 缺页率的概念。微软的文档 只说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是不是对程序影响很大就行了。
看你老来提问,写了好多。。。。。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)