{"id":2976,"date":"2014-03-30T17:34:47","date_gmt":"2014-03-30T09:34:47","guid":{"rendered":"http:\/\/rmohan.com\/?p=2976"},"modified":"2014-03-30T17:37:45","modified_gmt":"2014-03-30T09:37:45","slug":"sar-linux","status":"publish","type":"post","link":"https:\/\/mohan.sg\/?p=2976","title":{"rendered":"Sar Linux"},"content":{"rendered":"<p>&nbsp;<\/p>\n<h1><a title=\"Sar... Networking\" href=\"http:\/\/infd.co.uk\/blog\/2010\/06\/sar-networking\/\" rel=\"bookmark\">Sar&#8230; Networking<\/a><\/h1>\n<pre>echo \"Rcvd Bytes - Time\";\\\r\n(unset LANG; sar -n DEV) | grep eth0 | awk '{print ($5\" - \"$1)}' | sort -nr | head -n5;\\\r\necho \"Average:    `sar -n DEV |grep eth0| tail -n1 | awk '{print ($5)}'`\"<\/pre>\n<p>Example:<\/p>\n<pre>$ echo \"Rcvd Bytes - Time\";\\\r\n(unset LANG; sar -n DEV) | grep eth0 | awk '{print ($5\" - \"$1)}' | sort -nr | head -n5;\\\r\necho \"Average:    `sar -n DEV |grep eth0| tail -n1 | awk '{print ($5)}'`\"\r\nRcvd Bytes - Time\r\n1.72 - 09:00:01\r\n1.58 - 01:30:01\r\n1.26 - 01:20:01\r\n1.10 - 01:40:01\r\n1.09 - 03:30:01\r\nAverage:    0.83 \r\n\r\nxample:\r\n\r\n\u00a0echo \"Rcvd Bytes - Time\";\\\r\n(unset LANG; sar -n DEV) | grep eth0 | awk '{print ($5\" - \"$1)}' | sort -nr | head -n5;\\\r\necho \"Average:\u00a0\u00a0\u00a0 `sar -n DEV |grep eth0| tail -n1 | awk '{print ($5)}'`\"\r\nRcvd Bytes - Time\r\n1.72 - 09:00:01\r\n1.58 - 01:30:01\r\n1.26 - 01:20:01\r\n1.10 - 01:40:01\r\n1.09 - 03:30:01\r\nAverage:\u00a0\u00a0\u00a0 0.83\r\n\r\nAlso just the usual \u2018top n tailed\u2019 format to show the last 20 records for \u2018received bytes\u2019:\r\n\r\n(unset LANG; sar -n DEV) | grep tx |head -n1| awk '{print (\"\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"$6)}';\\\r\n(unset LANG; sar -n DEV) | grep eth0 | tail -20 | awk '{print ($1,$2\" - \"$6)}';\r\n\r\nExample:\r\n\r\n\u00a0 (unset LANG; sar -n DEV) | grep tx |head -n1| awk '{print (\"\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"$6)}';\\\r\n(unset LANG; sar -n DEV) | grep eth0 | tail -20 | awk '{print ($1,$2\" - \"$6)}';\r\ntxkB\/s\r\n11:50:01 eth0 - 1.69\r\n12:00:01 eth0 - 0.40\r\n12:10:01 eth0 - 0.01\r\n12:20:01 eth0 - 0.01\r\n12:30:01 eth0 - 0.01\r\n12:40:01 eth0 - 0.01\r\n12:50:01 eth0 - 0.01\r\n13:00:01 eth0 - 0.01\r\n13:10:01 eth0 - 0.01\r\n13:20:01 eth0 - 0.01\r\n13:30:01 eth0 - 0.01\r\n13:40:01 eth0 - 0.01\r\n13:50:01 eth0 - 0.25\r\n14:00:01 eth0 - 0.10\r\n14:10:01 eth0 - 0.02\r\n14:20:01 eth0 - 0.01\r\n14:30:01 eth0 - 0.03\r\n14:40:01 eth0 - 0.86\r\n14:50:01 eth0 - 0.22\r\nAverage: eth0 - 1.56\r\n\r\nYou\u2019ll notice that I use \u2018unset LANG\u2019 in a lot of the examples. This removes AM\/PM from the output and tailors the results instead in 24hr clock format. It makes the output a lot more predictable when on different machines!<\/pre>\n<h1><a title=\"Sar... Memory\" href=\"http:\/\/infd.co.uk\/blog\/2010\/05\/sar-memory\/\" rel=\"bookmark\">Sar&#8230; Memory<\/a><\/h1>\n<p>o one of the big problems with Sar is that it\u2019s pretty \u2018dumb\u2019 with its \u2018memory free\u2019 reporting. Although the information from Sar is great, a colleague of mine gave me the basis for a few more one liners that will perform a calculation to ensure that buffers\/cache are taken into account as their usage is relinquished under system load.<\/p>\n<p>Again, all of my commands are pretty hacky, and probably not examples of good scripting \u2013 but they get the job done!<\/p>\n<p>Show the \u2018real\u2019 memory usage, the last column gives the true value:<\/p>\n<p>(unset LANG ;sar\u00a0 -r) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; usedbc=$3-($5+$6);\\<br \/>\npc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217;<\/p>\n<p>Example:<\/p>\n<p>(unset LANG ;sar\u00a0 -r) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; usedbc=$3-($5+$6);\\<br \/>\npc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217;<\/p>\n<p>Linux 2.6.xx (influencd.co.uk)\u00a0\u00a0\u00a0\u00a0 05\/31\/10<br \/>\n00:00:01\u00a0\u00a0\u00a0 kbmemfree kbmemused\u00a0 %memused kbbuffers\u00a0 kbcached kbswpfree kbswpused\u00a0 %swpused\u00a0 kbswpcad<br \/>\n00:10:01\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 109904\u00a0\u00a0\u00a0 295708\u00a0\u00a0\u00a0\u00a0 72.90\u00a0\u00a0\u00a0\u00a0 43432\u00a0\u00a0\u00a0\u00a0 73392\u00a0\u00a0\u00a0 764192\u00a0\u00a0\u00a0\u00a0 22232\u00a0\u00a0\u00a0\u00a0\u00a0 2.83\u00a0\u00a0\u00a0\u00a0\u00a0 3592 44.1022<br \/>\n00:20:01\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 107480\u00a0\u00a0\u00a0 298132\u00a0\u00a0\u00a0\u00a0 73.50\u00a0\u00a0\u00a0\u00a0 43556\u00a0\u00a0\u00a0\u00a0 73404\u00a0\u00a0\u00a0 764192\u00a0\u00a0\u00a0\u00a0 22232\u00a0\u00a0\u00a0\u00a0\u00a0 2.83\u00a0\u00a0\u00a0\u00a0\u00a0 3592 44.6663<br \/>\n00:30:01\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 107328\u00a0\u00a0\u00a0 298284\u00a0\u00a0\u00a0\u00a0 73.54\u00a0\u00a0\u00a0\u00a0 43668\u00a0\u00a0\u00a0\u00a0 73404\u00a0\u00a0\u00a0 764192\u00a0\u00a0\u00a0\u00a0 22232\u00a0\u00a0\u00a0\u00a0\u00a0 2.83\u00a0\u00a0\u00a0\u00a0\u00a0 3592 44.6762<\/p>\n<p>Showing the \u2018real\u2019 memory usage in a presentable format, top and tailing the results:<\/p>\n<p>(unset LANG ;sar\u00a0 -r) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; usedbc=$3-($5+$6); \\<br \/>\npc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217; | awk &#8216;{print ($1&#8243;\u00a0\u00a0\u00a0 &#8211;\u00a0 &#8220;$4&#8221; &#8211; &#8220;$11)}&#8217;| head -1;\\<br \/>\necho &#8220;Time\u00a0\u00a0\u00a0\u00a0 &#8211; Real memory used %&#8221;; (unset LANG ;sar\u00a0 -r) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; usedbc=$3-($5+$6);\\<br \/>\npc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217; | awk &#8216;{print ($1&#8243; &#8211; &#8220;$11)}&#8217;| tail -10<\/p>\n<p>Example:<\/p>\n<p>(unset LANG ;sar\u00a0 -r) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; usedbc=$3-($5+$6); \\<br \/>\npc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217; | awk &#8216;{print ($1&#8221;\u00a0\u00a0\u00a0 &#8211;\u00a0 &#8220;$4&#8221; &#8211; &#8220;$11)}&#8217;| head -1;\\<br \/>\necho &#8220;Time\u00a0\u00a0\u00a0\u00a0 &#8211; Real memory used %&#8221;; (unset LANG ;sar\u00a0 -r) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; usedbc=$3-($5+$6);\\<br \/>\npc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217; | awk &#8216;{print ($1&#8243; &#8211; &#8220;$11)}&#8217;| tail -10<\/p>\n<p>Linux\u00a0\u00a0\u00a0 &#8211;\u00a0 05\/31\/10 &#8211;<br \/>\nTime\u00a0\u00a0\u00a0\u00a0 &#8211; Real memory used %<br \/>\n19:50:01 &#8211; 86.6651<br \/>\n20:00:01 &#8211; 87.8406<br \/>\n20:10:01 &#8211; 88.1177<br \/>\n20:20:01 &#8211; 87.031<br \/>\n20:30:01 &#8211; 87.315<br \/>\n20:40:01 &#8211; 89.1699<br \/>\n20:50:01 &#8211; 89.4323<br \/>\n21:00:01 &#8211; 89.0723<br \/>\n21:10:01 &#8211; 90.3524<br \/>\nAverage: &#8211; 45.4244<\/p>\n<p>The below will give an hourly snapshot of the memory usage for every day that there is a sar log for, in reverse date order:<\/p>\n<p>for i in $(ls \/var\/log\/sa\/ | grep -v sar);\\<br \/>\ndo (unset LANG ;sar\u00a0 -f \/var\/log\/sa\/$i -r) | awk &#8216;$3~\/[0-9]\/{total=$3+$2;\\<br \/>\nusedbc=$3-($5+$6); pc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217;\\<br \/>\n| awk &#8216;{print ($1&#8221; &#8211; &#8220;$4&#8221; &#8211; &#8220;$11)}&#8217;| head -1 | grep -v &#8220;memused&#8221;; echo &#8220;Time\u00a0\u00a0\u00a0\u00a0 &#8211; Real memory used %&#8221;;\\<br \/>\n(unset LANG ;sar\u00a0 -r\u00a0 -f \/var\/log\/sa\/$i) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; usedbc=$3-($5+$6);pc_used=(100*usedbc)\/total;\\<br \/>\nprint $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217; | awk &#8216;{print ($1&#8243; &#8211; &#8220;$11)}&#8217;| grep &#8220;00:01&#8221; | grep -v &#8220;memused&#8221;; echo; done<\/p>\n<p>Example:<\/p>\n<p>[root@influencd ~]$\u00a0 for i in $(ls -t \/var\/log\/sa\/ | grep -v sar);\\<br \/>\ndo (unset LANG ;sar\u00a0 -f \/var\/log\/sa\/$i -r) | awk &#8216;$3~\/[0-9]\/{total=$3+$2;\\<br \/>\nusedbc=$3-($5+$6); pc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217;\\<br \/>\n| awk &#8216;{print ($1&#8243; &#8211; &#8220;$4&#8221; &#8211; &#8220;$11)}&#8217;| head -1 | grep -v &#8220;memused&#8221;; echo &#8220;Time\u00a0\u00a0\u00a0\u00a0 &#8211; Real memory used %&#8221;;\\<br \/>\n(unset LANG ;sar\u00a0 -r\u00a0 -f \/var\/log\/sa\/$i) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; usedbc=$3-($5+$6);pc_used=(100*usedbc)\/total;\\<br \/>\nprint $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217; | awk &#8216;{print ($1&#8243; &#8211; &#8220;$11)}&#8217;| grep &#8220;00:01&#8221; | grep -v &#8220;memused&#8221;; echo; done<\/p>\n<p>Linux &#8211; 05\/24\/10 &#8211;<br \/>\nTime\u00a0\u00a0\u00a0\u00a0 &#8211; Real memory used %<br \/>\n00:00:01 &#8211;<br \/>\n01:00:01 &#8211; 89.3317<br \/>\n02:00:01 &#8211; 88.9066<br \/>\n03:00:01 &#8211; 88.5102<br \/>\n[snip]<br \/>\nLinux &#8211; 05\/23\/10 &#8211;<br \/>\nTime\u00a0\u00a0\u00a0\u00a0 &#8211; Real memory used %<br \/>\n00:00:01 &#8211;<br \/>\n01:00:01 &#8211; 49.6731<br \/>\n02:00:01 &#8211; 49.1317<br \/>\n[etc etc]<\/p>\n<p>The below uses the day\u2019s average from the sar information, and presents it for each day that there\u2019s a log:<\/p>\n<p>echo &#8220;Real memory used %&#8221;;\\<br \/>\nfor i in $(ls \/var\/log\/sa\/ | grep -v sar); do (unset LANG ;sar\u00a0 -f \/var\/log\/sa\/$i -r) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; \\<br \/>\nusedbc=$3-($5+$6); pc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217; | awk &#8216;{print ($4)}&#8217;\\<br \/>\n| head -1 | grep -v &#8220;memused&#8221; ;\\<br \/>\n(unset LANG ;sar\u00a0 -r\u00a0 -f \/var\/log\/sa\/$i) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; usedbc=$3-($5+$6);\\<br \/>\npc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217; | awk &#8216;{print (&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;$11)}&#8217;| tail -1;done<\/p>\n<p>Example:<\/p>\n<p>echo &#8220;Real memory used %&#8221;;\\<br \/>\nfor i in $(ls \/var\/log\/sa\/ | grep -v sar); do (unset LANG ;sar\u00a0 -f \/var\/log\/sa\/$i -r) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; \\<br \/>\nusedbc=$3-($5+$6); pc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217; | awk &#8216;{print ($4)}&#8217;\\<br \/>\n| head -1 | grep -v &#8220;memused&#8221; ;\\<br \/>\n(unset LANG ;sar\u00a0 -r\u00a0 -f \/var\/log\/sa\/$i) | awk &#8216;$3~\/[0-9]\/{total=$3+$2; usedbc=$3-($5+$6);\\<br \/>\npc_used=(100*usedbc)\/total;print $0,pc_used} $3!~\/[0-9]\/{print $0}&#8217; | awk &#8216;{print (&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;$11)}&#8217;| tail -1;done<\/p>\n<p>Real memory used %<br \/>\n05\/23\/10<br \/>\n49.2444<br \/>\n05\/24\/10<br \/>\n40.8514<br \/>\n05\/25\/10<br \/>\n43.1346<br \/>\n05\/26\/10<br \/>\n50.288<br \/>\n05\/27\/10<br \/>\n60.299<br \/>\n05\/28\/10<br \/>\n65.9872<br \/>\n05\/29\/10<br \/>\n70.6873<br \/>\n05\/30\/10<br \/>\n40.3156<br \/>\n05\/31\/10<br \/>\n45.7713<\/p>\n<p>In contrast if we compare the \u2018dumb\u2019 memory usage to the example above, you can see some pretty major differences in terms of the value:<\/p>\n<p>echo &#8221;\u00a0\u00a0\u00a0\u00a0 Memory used %&#8221;; for i in $(ls \/var\/log\/sa\/ | grep -v sar); do echo $i ;\\<br \/>\nsar\u00a0 -r -f \/var\/log\/sa\/$i | tail -1 | awk &#8216;{print ($1&#8243; &#8211; &#8220;$4)}&#8217;; done<\/p>\n<p>Example:<\/p>\n<p>echo &#8221;\u00a0\u00a0\u00a0\u00a0 Memory used %&#8221;; for i in $(ls \/var\/log\/sa\/ | grep -v sar); do echo $i ;\\<br \/>\nsar\u00a0 -r -f \/var\/log\/sa\/$i | tail -1 | awk &#8216;{print ($1&#8243; &#8211; &#8220;$4)}&#8217;; done<\/p>\n<p>Memory used %<br \/>\nsa23<br \/>\nAverage: &#8211; 70.35<br \/>\nsa24<br \/>\nAverage: &#8211; 78.06<br \/>\nsa25<br \/>\nAverage: &#8211; 94.58<br \/>\nsa26<br \/>\nAverage: &#8211; 92.61<br \/>\nsa27<br \/>\nAverage: &#8211; 89.86<br \/>\nsa28<br \/>\nAverage: &#8211; 93.69<br \/>\nsa29<br \/>\nAverage: &#8211; 97.31<br \/>\nsa30<br \/>\nAverage: &#8211; 65.48<br \/>\nsa31<br \/>\nAverage: &#8211; 75.65<\/p>\n<p><strong>\u00a0Sar&#8230; CPU<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>Cpu information:<\/p>\n<p>Display \u2018Processor Queue Length\u2019 information from the last 15 intervals in a presentable format:<\/p>\n<p>sar -q | head -3; sar -q | tail -n15<\/p>\n<p>Example:<\/p>\n<p>sar -q | head -3; sar -q | tail -n15<br \/>\nLinux 2.6.xx (influencd.co.uk)\u00a0\u00a0\u00a0\u00a0 05\/31\/2010<br \/>\n12:00:01 AM\u00a0\u00a0 runq-sz\u00a0 plist-sz\u00a0\u00a0 ldavg-1\u00a0\u00a0 ldavg-5\u00a0 ldavg-15<br \/>\n04:30:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 104\u00a0\u00a0\u00a0\u00a0\u00a0 0.02\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n04:40:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 105\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n04:50:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 97\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n05:00:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 97\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n05:10:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 97\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n05:20:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 97\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n05:30:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 97\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n05:40:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 97\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n05:50:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 97\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n06:00:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 97\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n06:10:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 98\u00a0\u00a0\u00a0\u00a0\u00a0 0.07\u00a0\u00a0\u00a0\u00a0\u00a0 0.02\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n06:20:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 109\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n06:30:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 106\u00a0\u00a0\u00a0\u00a0\u00a0 0.13\u00a0\u00a0\u00a0\u00a0\u00a0 0.03\u00a0\u00a0\u00a0\u00a0\u00a0 0.01<br \/>\n06:40:01 PM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 110\u00a0\u00a0\u00a0\u00a0\u00a0 0.07\u00a0\u00a0\u00a0\u00a0\u00a0 0.02\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\nAverage:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 98\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<\/p>\n<p>Display general CPU stats from the last 15 intervals in a presentable format:<\/p>\n<p>sar | head -3; sar | tail -n15<\/p>\n<p>Example:<\/p>\n<p>sar | head -3; sar | tail -n15<br \/>\nLinux 2.6.xx (influencd.co.uk)\u00a0\u00a0\u00a0\u00a0 05\/31\/2010<\/p>\n<p>12:00:01 AM\u00a0\u00a0\u00a0\u00a0 CPU\u00a0\u00a0\u00a0\u00a0 %user\u00a0\u00a0\u00a0\u00a0 %nice\u00a0\u00a0 %system\u00a0\u00a0 %iowait\u00a0\u00a0\u00a0 %steal\u00a0\u00a0\u00a0\u00a0 %idle<br \/>\n04:30:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.98<br \/>\n04:40:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.03\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.95<br \/>\n04:50:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.02\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.02\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.95<br \/>\n05:00:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.98<br \/>\n05:10:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.98<br \/>\n05:20:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.98<br \/>\n05:30:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.99<br \/>\n05:40:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.99<br \/>\n05:50:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.99<br \/>\n06:00:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.98<br \/>\n06:10:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.03\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.02\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.94<br \/>\n06:20:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.17\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.02\u00a0\u00a0\u00a0\u00a0\u00a0 0.21\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0 99.59<br \/>\n06:30:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 1.09\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.06\u00a0\u00a0\u00a0\u00a0\u00a0 0.34\u00a0\u00a0\u00a0\u00a0\u00a0 0.03\u00a0\u00a0\u00a0\u00a0 98.48<br \/>\n06:40:01 PM\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.35\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.02\u00a0\u00a0\u00a0\u00a0\u00a0 0.15\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0 99.47<br \/>\nAverage:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 all\u00a0\u00a0\u00a0\u00a0\u00a0 0.03\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.01\u00a0\u00a0\u00a0\u00a0\u00a0 0.05\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 99.92<\/p>\n<p>Presentable CPU idle percentage, for the last 15 intervals:<\/p>\n<p>unset LANG;date;echo &#8220;CPU idle\u00a0 %&#8221;; sar | tail -20| awk &#8216;{print ($1&#8243; &#8220;$2&#8221; &#8211; &#8220;$8)}&#8217;<\/p>\n<p>Example:<\/p>\n<p>unset LANG;date;echo &#8220;CPU idle\u00a0 %&#8221;; sar | tail -20| awk &#8216;{print ($1&#8243; &#8220;$2&#8221; &#8211; &#8220;$8)}&#8217;<br \/>\nMon May 31 19:09:53 GMT 2010<br \/>\nCPU idle\u00a0 %<br \/>\n16:00:01 all &#8211; 99.49<br \/>\n16:10:01 all &#8211; 99.97<br \/>\n16:20:02 all &#8211; 99.98<br \/>\n16:30:01 all &#8211; 99.98<br \/>\n16:40:01 all &#8211; 99.95<br \/>\n16:50:01 all &#8211; 99.95<br \/>\n17:00:01 all &#8211; 99.98<br \/>\n17:10:01 all &#8211; 99.98<br \/>\n17:20:01 all &#8211; 99.98<br \/>\n17:30:01 all &#8211; 99.99<br \/>\n17:40:01 all &#8211; 99.99<br \/>\n17:50:01 all &#8211; 99.99<br \/>\n18:00:01 all &#8211; 99.98<br \/>\n18:10:01 all &#8211; 99.94<br \/>\n18:20:01 all &#8211; 99.59<br \/>\n18:30:01 all &#8211; 98.48<br \/>\n18:40:01 all &#8211; 99.47<br \/>\n18:50:01 all &#8211; 99.80<br \/>\n19:00:01 all &#8211; 99.86<br \/>\nAverage: all &#8211; 99.92<\/p>\n<p>CPU Idle average for each day available in the Sar logs:<\/p>\n<p>echo &#8220;Average CPU idle\u00a0 %&#8221;; for i in $(ls \/var\/log\/sa\/ | grep -v sar); \\<br \/>\ndo ll \/var\/log\/sa\/$i | awk &#8216;{print ($6,$7)}&#8217; ;\\<br \/>\nsar -f \/var\/log\/sa\/$i | tail -1 | awk &#8216;{print (&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;$7)}&#8217;; done<\/p>\n<p>Example:<\/p>\n<p>echo &#8220;Average CPU idle\u00a0 %&#8221;; for i in $(ls \/var\/log\/sa\/ | grep -v sar); \\<br \/>\ndo ll \/var\/log\/sa\/$i | awk &#8216;{print ($6,$7)}&#8217; ;\\<br \/>\nsar -f \/var\/log\/sa\/$i | tail -1 | awk &#8216;{print (&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;$7)}&#8217;; done<br \/>\nAverage CPU idle\u00a0 %<br \/>\n2010-05-23 23:50<br \/>\n0.00<br \/>\n2010-05-24 23:50<br \/>\n0.00<br \/>\n2010-05-25 23:50<br \/>\n0.00<br \/>\n2010-05-26 23:50<br \/>\n0.00<br \/>\n2010-05-27 23:50<br \/>\n0.00<br \/>\n2010-05-28 23:50<br \/>\n0.01<br \/>\n2010-05-29 23:50<br \/>\n0.00<br \/>\n2010-05-30 23:50<br \/>\n0.00<br \/>\n2010-05-31 19:00<br \/>\n0.00<\/p>\n<p>Average processor queue length for every day available in the sar logs:<\/p>\n<p>echo &#8220;Average Processor Queue length&#8221;; for i in $(ls \/var\/log\/sa\/ | grep -v sar);\\<br \/>\ndo ll \/var\/log\/sa\/$i | awk &#8216;{print ($6,$7)}&#8217; ; \\<br \/>\nsar -q -f \/var\/log\/sa\/$i | tail -1 | awk &#8216;{print (&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;$6)}&#8217;; done<\/p>\n<p>Example:<br \/>\necho &#8220;Average Processor Queue length&#8221;; for i in $(ls \/var\/log\/sa\/ | grep -v sar);\\<br \/>\ndo ll \/var\/log\/sa\/$i | awk &#8216;{print ($6,$7)}&#8217; ; \\<br \/>\nsar -q -f \/var\/log\/sa\/$i | tail -1 | awk &#8216;{print (&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;$6)}&#8217;; done<br \/>\nAverage Processor Queue length<br \/>\n2010-05-23 23:50<br \/>\n0.00<br \/>\n2010-05-24 23:50<br \/>\n0.00<br \/>\n2010-05-25 23:50<br \/>\n0.00<br \/>\n2010-05-26 23:50<br \/>\n0.00<br \/>\n2010-05-27 23:50<br \/>\n0.00<br \/>\n2010-05-28 23:50<br \/>\n0.00<br \/>\n2010-05-29 23:50<br \/>\n0.00<br \/>\n2010-05-30 23:50<br \/>\n0.00<br \/>\n2010-05-31 20:10<br \/>\n0.00<\/p>\n<p>Show CPU processor queue length use by hourly snapshot, for every day in the last month:<\/p>\n<p>date;echo;echo &#8220;Processor Queue Length (15m)&#8221;;echo; for i in $(ls \/var\/log\/sa\/ | grep -v sar);\\<br \/>\ndo ll \/var\/log\/sa\/$i | awk &#8216;{print ($6,$7)}&#8217;;\\<br \/>\nsar -q -f \/var\/log\/sa\/$i | grep &#8220;:00:&#8221; | awk &#8216;{print ($1,$2&#8243; &#8211; &#8220;$7)}&#8217;; echo; done<\/p>\n<p>Example:<\/p>\n<p>[root@influencd ~]# date;echo;echo &#8220;Processor Queue Length (15m)&#8221;;echo; for i in $(ls \/var\/log\/sa\/ | grep -v sar);\\<br \/>\ndo ll \/var\/log\/sa\/$i | awk &#8216;{print ($6,$7)}&#8217;;\\<br \/>\nsar -q -f \/var\/log\/sa\/$i | grep &#8220;:00:&#8221; | awk &#8216;{print ($1,$2&#8243; &#8211; &#8220;$7)}&#8217;; echo; done<br \/>\nMon May 31 19:02:30 GMT 2010<br \/>\nProcessor Queue Length (15m)<\/p>\n<p>2010-05-23 23:5012:00:01 AM &#8211; ldavg-15<br \/>\n01:00:01 AM &#8211; 0.00<br \/>\n02:00:01 AM &#8211; 0.00<br \/>\n03:00:01 AM &#8211; 0.00<br \/>\n[Snip]<br \/>\n2010-05-24 23:50<br \/>\n12:00:01 AM &#8211; ldavg-15<br \/>\n01:00:01 AM &#8211; 0.00<br \/>\n02:00:01 AM &#8211; 0.00<br \/>\n03:00:01 AM &#8211; 0.00<br \/>\n[etc etc]<\/p>\n<p>Hourly Processor queue length with 15\/m averages:<\/p>\n<p>sar -q | grep 00:01| awk &#8216;{print ($1&#8221; &#8220;$2&#8221; &#8211; &#8220;$7)}&#8217;|head -3;\\<br \/>\nsar -q |grep 00:01| awk &#8216;{print ($1,$2&#8221; &#8211; &#8220;$7)}&#8217;| tail -n15<\/p>\n<p>Example:<\/p>\n<p>sar -q | grep 00:01| awk &#8216;{print ($1&#8221; &#8220;$2&#8221; &#8211; &#8220;$7)}&#8217;|head -3;\\<br \/>\nsar -q |grep 00:01| awk &#8216;{print ($1,$2&#8221; &#8211; &#8220;$7)}&#8217;| tail -n15<br \/>\n12:00:01 AM &#8211; ldavg-15<br \/>\n01:00:01 AM &#8211; 0.00<br \/>\n02:00:01 AM &#8211; 0.00<br \/>\n04:00:01 AM &#8211; 0.00<br \/>\n05:00:01 AM &#8211; 0.00<br \/>\n06:00:01 AM &#8211; 0.00<br \/>\n07:00:01 AM &#8211; 0.00<br \/>\n08:00:01 AM &#8211; 0.00<br \/>\n09:00:01 AM &#8211; 0.00<br \/>\n10:00:01 AM &#8211; 0.00<br \/>\n11:00:01 AM &#8211; 0.00<br \/>\n12:00:01 PM &#8211; 0.00<br \/>\n02:00:01 PM &#8211; 0.00<br \/>\n03:00:01 PM &#8211; 0.00<br \/>\n04:00:01 PM &#8211; 0.00<br \/>\n05:00:01 PM &#8211; 0.00<br \/>\n06:00:01 PM &#8211; 0.00<br \/>\n07:00:01 PM &#8211; 0.00<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp;<\/p>\n<p> Sar&#8230; Networking echo &#8220;Rcvd Bytes &#8211; Time&#8221;;\\ (unset LANG; sar -n DEV) | grep eth0 | awk &#8216;{print ($5&#8243; &#8211; &#8220;$1)}&#8217; | sort -nr | head -n5;\\ echo &#8220;Average: `sar -n DEV |grep eth0| tail -n1 | awk &#8216;{print ($5)}&#8217;`&#8221; <\/p>\n<p>Example:<\/p>\n<p> $ echo &#8220;Rcvd Bytes &#8211; Time&#8221;;\\ (unset LANG; sar -n DEV) | grep [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/2976"}],"collection":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2976"}],"version-history":[{"count":4,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/2976\/revisions"}],"predecessor-version":[{"id":2980,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/2976\/revisions\/2980"}],"wp:attachment":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}