{"id":828,"date":"2015-05-20T08:36:09","date_gmt":"2015-05-20T17:36:09","guid":{"rendered":"http:\/\/blog.box.kr\/?p=828"},"modified":"2015-05-20T08:36:09","modified_gmt":"2015-05-20T17:36:09","slug":"scraptop-25-best-linux-performance-monitoring-and-debugging-tools","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=828","title":{"rendered":"[scrap]Top 25 Best Linux Performance Monitoring and Debugging Tools"},"content":{"rendered":"<p><a href=\"http:\/\/www.thegeekstuff.com\/2011\/12\/linux-performance-monitoring-tools\/\">http:\/\/www.thegeekstuff.com\/2011\/12\/linux-performance-monitoring-tools\/<\/a><\/p>\n<p>I\u2019ve compiled 25 performance monitoring and debugging tools that will be helpful when you are working on Linux environment. This list is not comprehensive or authoritative by any means.<\/p>\n<p>However this list has enough tools for you to play around and pick the one that is suitable your specific debugging and monitoring scenario.<br \/>\n<span id=\"more-9159\"><\/span><\/p>\n<h3>1. SAR<\/h3>\n<p>Using sar utility you can do two things: 1) Monitor system real time performance (CPU, Memory, I\/O, etc) 2) Collect performance data in the background on an on-going basis and do analysis on the historical data to identify bottlenecks.<\/p>\n<p>Sar is part of the sysstat package. The following are some of the things you can do using sar utility.<\/p>\n<ul>\n<li>Collective CPU usage<\/li>\n<li>Individual CPU statistics<\/li>\n<li>Memory used and available<\/li>\n<li>Swap space used and available<\/li>\n<li>Overall I\/O activities of the system<\/li>\n<li>Individual device I\/O activities<\/li>\n<li>Context switch statistics<\/li>\n<li>Run queue and load average data<\/li>\n<li>Network statistics<\/li>\n<li>Report sar data from a specific time<\/li>\n<li>and lot more..<\/li>\n<\/ul>\n<p>The following sar command will display the system CPU statistics 3 times (with 1 second interval).<\/p>\n<p>The following \u201csar -b\u201d command reports I\/O statistics. \u201c1 3\u2033 indicates that the sar -b will be executed for every 1 second for a total of 3 times.<\/p>\n<pre>$ sar -b 1 3\nLinux 2.6.18-194.el5PAE (dev-db)        03\/26\/2011      _i686_  (8 CPU)\n\n01:56:28 PM       tps      rtps      wtps   bread\/s   bwrtn\/s\n01:56:29 PM    346.00    264.00     82.00   2208.00    768.00\n01:56:30 PM    100.00     36.00     64.00    304.00    816.00\n01:56:31 PM    282.83     32.32    250.51    258.59   2537.37\nAverage:       242.81    111.04    131.77    925.75   1369.90<\/pre>\n<p>More SAR examples: <a href=\"http:\/\/www.thegeekstuff.com\/2011\/03\/sar-examples\/\">How to Install\/Configure Sar (sysstat) and 10 Useful Sar Command Examples<\/a><\/p>\n<p><center><\/p>\n<div>\n<\/div>\n<p><\/center><\/p>\n<h3>2. Tcpdump<\/h3>\n<p>tcpdump is a network packet analyzer. Using tcpdump you can capture the packets and analyze it for any performance bottlenecks.<\/p>\n<p>The following tcpdump command example displays captured packets in ASCII.<\/p>\n<pre>$ tcpdump -A -i eth0\ntcpdump: verbose output suppressed, use -v or -vv for full protocol decode\nlistening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes\n14:34:50.913995 IP valh4.lell.net.ssh &gt; yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652\nE.....@.@..]..i...9...*.V...]...P....h....E...&gt;{..U=...g.\n......G..7+KA....A...L.\n14:34:51.423640 IP valh4.lell.net.ssh &gt; yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652\nE.....@.@....i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&amp;....^#Ba...\nE..(R.@.|.....9...i.*...]...V..*P..OWp........<\/pre>\n<p>Using tcpdump you can capture packets based on several custom conditions. For example, capture packets that flow through a particular port, capture tcp communication between two specific hosts, capture packets that belongs to a specific protocol type, etc.<\/p>\n<p>More tcpdump examples: <a href=\"http:\/\/www.thegeekstuff.com\/2010\/08\/tcpdump-command-examples\/\">15 TCPDUMP Command Examples<\/a><\/p>\n<h3>3. Nagios<\/h3>\n<p>Nagios is an open source monitoring solution that can monitor pretty much anything in your IT infrastructure. For example, when a server goes down it can send a notification to your sysadmin team, when a database goes down it can page your DBA team, when the a web server goes down it can notify the appropriate team.<\/p>\n<p>You can also set warning and critical threshold level for various services to help you proactively address the issue. For example, it can notify sysadmin team when a disk partition becomes 80% full, which will give enough time for the sysadmin team to work on adding more space before the issue becomes critical.<\/p>\n<p>Nagios also has a very good user interface from where you can monitor the health of your overall IT infrastructure.<\/p>\n<p>The following are some of the things you can monitor using Nagios:<\/p>\n<ul>\n<li>Any hardware (servers, switches, routers, etc)<\/li>\n<li>Linux servers and Windows servers<\/li>\n<li>Databases (Oracle, MySQL, PostgreSQL, etc)<\/li>\n<li>Various services running on your OS (sendmail, nis, nfs, ldap, etc)<\/li>\n<li>Web servers<\/li>\n<li>Your custom application<\/li>\n<li>etc.<\/li>\n<\/ul>\n<p>More Nagios examples: <a href=\"http:\/\/www.thegeekstuff.com\/2008\/05\/nagios-30-jumpstart-guide-for-red-hat-overview-installation-and-configuration\/\">How to install and configure Nagios<\/a>, <a href=\"http:\/\/www.thegeekstuff.com\/2008\/07\/how-to-monitor-remote-windows-machine-using-nagios-on-linux\/\">monitor remote Windows machine<\/a>, and <a href=\"http:\/\/www.thegeekstuff.com\/2008\/06\/how-to-monitor-remote-linux-host-using-nagios-30\/\">monitor remote Linux server<\/a>.<\/p>\n<h3>4. Iostat<\/h3>\n<p>iostat reports CPU, disk I\/O, and NFS statistics. The following are some of iostat command examples.<\/p>\n<p>Iostat without any argument displays information about the CPU usage, and I\/O statistics about all the partitions on the system as shown below.<\/p>\n<pre>$ iostat\nLinux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07\/09\/2011\n\navg-cpu:  %user   %nice %system %iowait  %steal   %idle\n           5.68    0.00    0.52    2.03    0.00   91.76\n\nDevice:            tps   Blk_read\/s   Blk_wrtn\/s   Blk_read   Blk_wrtn\nsda             194.72      1096.66      1598.70 2719068704 3963827344\nsda1            178.20       773.45      1329.09 1917686794 3295354888\nsda2             16.51       323.19       269.61  801326686  668472456\nsdb             371.31       945.97      1073.33 2345452365 2661206408\nsdb1            371.31       945.95      1073.33 2345396901 2661206408\nsdc             408.03       207.05       972.42  513364213 2411023092\nsdc1            408.03       207.03       972.42  513308749 2411023092<\/pre>\n<p>By default iostat displays I\/O data for all the disks available in the system. To view statistics for a specific device (For example, \/dev\/sda), use the option -p as shown below.<\/p>\n<pre>$ iostat -p sda\nLinux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07\/09\/2011\n\navg-cpu:  %user   %nice %system %iowait  %steal   %idle\n           5.68    0.00    0.52    2.03    0.00   91.76\n\nDevice:            tps   Blk_read\/s   Blk_wrtn\/s   Blk_read   Blk_wrtn\nsda             194.69      1096.51      1598.48 2719069928 3963829584\nsda2            336.38        27.17        54.00   67365064  133905080\nsda1            821.89         0.69       243.53    1720833  603892838<\/pre>\n<h3>5. Mpstat<\/h3>\n<p>mpstat reports processors statistics. The following are some of mpstat command examples.<\/p>\n<p>Option -A, displays all the information that can be displayed by the mpstat command as shown below. This is really equivalent to \u201cmpstat -I ALL -u -P ALL\u201d command.<\/p>\n<pre>$ mpstat -A\nLinux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07\/09\/2011      _x86_64_        (4 CPU)\n\n10:26:34 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle\n10:26:34 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99\n10:26:34 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98\n10:26:34 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98\n10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00\n10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00\n\n10:26:34 PM  CPU    intr\/s\n10:26:34 PM  all     36.51\n10:26:34 PM    0      0.00\n10:26:34 PM    1      0.00\n10:26:34 PM    2      0.04\n10:26:34 PM    3      0.00\n\n10:26:34 PM  CPU     0\/s     1\/s     8\/s     9\/s    12\/s    14\/s    15\/s    16\/s    19\/s    20\/s    21\/s    33\/s   NMI\/s   LOC\/s   SPU\/s   PMI\/s   PND\/s   RES\/s   CAL\/s   TLB\/s   TRM\/s   THR\/s   MCE\/s   MCP\/s   ERR\/s   MIS\/s\n10:26:34 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    7.47    0.00    0.00    0.00    0.00    0.02    0.00    0.00    0.00    0.00    0.00    0.00    0.00\n10:26:34 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    4.90    0.00    0.00    0.00    0.00    0.03    0.00    0.00    0.00    0.00    0.00    0.00    0.00\n10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.04    0.00    0.00    0.00    0.00    0.00    3.32    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00\n10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.<\/pre>\n<p>mpstat Option -P ALL, displays all the individual CPUs (or Cores) along with its statistics as shown below.<\/p>\n<pre>$ mpstat -P ALL\nLinux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07\/09\/2011      _x86_64_        (4 CPU)\n\n10:28:04 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle\n10:28:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99\n10:28:04 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98\n10:28:04 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98\n10:28:04 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00\n10:28:04 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00<\/pre>\n<h3>6. Vmstat<\/h3>\n<p>vmstat reports virtual memory statistics. The following are some of vmstat command examples.<\/p>\n<p>vmstat by default will display the memory usage (including swap) as shown below.<\/p>\n<pre>$ vmstat\nprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st\n 0  0 305416 260688  29160 2356920    2    2     4     1    0    0  6  1 92  2  0\n\nTo execute vmstat every 2 seconds for 10 times, do the following. After executing 10 times, it will stop automatically.\n$ vmstat 2 10\nprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st\n 1  0      0 537144 182736 6789320    0    0     0     0    1    1  0  0 100  0  0\n 0  0      0 537004 182736 6789320    0    0     0     0   50   32  0  0 100  0  0\n..<\/pre>\n<p>iostat and vmstat are part of the sar utility. You should install sysstat package to get iostat and vmstat working.<\/p>\n<p>More examples: <a href=\"http:\/\/www.thegeekstuff.com\/2011\/07\/iostat-vmstat-mpstat-examples\/\">24 iostat, vmstat and mpstat command Examples<\/a><\/p>\n<h3>7. PS Command<\/h3>\n<p>Process is a running instance of a program. Linux is a multitasking operating system, which means that more than one process can be active at once. Use ps command to find out what processes are running on your system.<\/p>\n<p>ps command also give you lot of additional information about the running process which will help you identify any performance bottlenecks on your system.<\/p>\n<p>The following are few ps command examples.<\/p>\n<p>Use -u option to display the process that belongs to a specific username. When you have multiple username, separate them using a comma. The example below displays all the process that are owned by user wwwrun, or postfix.<\/p>\n<pre>$ ps -f -u wwwrun,postfix\nUID        PID  PPID  C STIME TTY          TIME CMD\npostfix   7457  7435  0 Mar09 ?        00:00:00 qmgr -l -t fifo -u\nwwwrun    7495  7491  0 Mar09 ?        00:00:00 \/usr\/sbin\/httpd2-prefork -f \/etc\/apache2\/httpd.conf\nwwwrun    7496  7491  0 Mar09 ?        00:00:00 \/usr\/sbin\/httpd2-prefork -f \/etc\/apache2\/httpd.conf\nwwwrun    7497  7491  0 Mar09 ?        00:00:00 \/usr\/sbin\/httpd2-prefork -f \/etc\/apache2\/httpd.conf\nwwwrun    7498  7491  0 Mar09 ?        00:00:00 \/usr\/sbin\/httpd2-prefork -f \/etc\/apache2\/httpd.conf\nwwwrun    7499  7491  0 Mar09 ?        00:00:00 \/usr\/sbin\/httpd2-prefork -f \/etc\/apache2\/httpd.conf\nwwwrun   10078  7491  0 Mar09 ?        00:00:00 \/usr\/sbin\/httpd2-prefork -f \/etc\/apache2\/httpd.conf\nwwwrun   10082  7491  0 Mar09 ?        00:00:00 \/usr\/sbin\/httpd2-prefork -f \/etc\/apache2\/httpd.conf\npostfix  15677  7435  0 22:23 ?        00:00:00 pickup -l -t fifo -u<\/pre>\n<p>The example below display the process Id and commands in a hierarchy. \u2013forest is an argument to ps command which displays ASCII art of process tree. From this tree, we can identify which is the parent process and the child processes it forked in a recursive manner.<\/p>\n<pre>$ ps -e -o pid,args --forest\n  468  _ sshd: root@pts\/7\n  514  |   _ -bash\n17484  _ sshd: root@pts\/11\n17513  |   _ -bash\n24004  |       _ vi .\/790310__11117\/journal\n15513  _ sshd: root@pts\/1\n15522  |   _ -bash\n 4280  _ sshd: root@pts\/5\n 4302  |   _ -bash<\/pre>\n<p>More ps examples: <a href=\"http:\/\/www.thegeekstuff.com\/2011\/04\/ps-command-examples\/\">7 Practical PS Command Examples for Process Monitoring<\/a><\/p>\n<h3>8. Free<\/h3>\n<p>Free command displays information about the physical (RAM) and swap memory of your system.<\/p>\n<p>In the example below, the total physical memory on this system is 1GB. The values displayed below are in KB.<\/p>\n<pre># free\n       total   used    free   shared  buffers  cached\nMem: 1034624   1006696 27928  0       174136   615892\n-\/+ buffers\/cache:     216668      817956\nSwap:    2031608       0    2031608<\/pre>\n<p>The following example will display the total memory on your system including RAM and Swap.<\/p>\n<p>In the following command:<\/p>\n<ul>\n<li>option m displays the values in MB<\/li>\n<li>option t displays the \u201cTotal\u201d line, which is sum of physical and swap memory values<\/li>\n<li>option o is to hide the buffers\/cache line from the above example.<\/li>\n<\/ul>\n<pre># free -mto\n                  total       used      free     shared    buffers     cached\nMem:          1010        983         27              0         170           601\nSwap:          1983            0    1983\nTotal:          2994        983     2011<\/pre>\n<h3>9. TOP<\/h3>\n<p>Top command displays all the running process in the system ordered by certain columns. This displays the information real-time.<\/p>\n<p>You can kill a process without exiting from top. Once you\u2019ve located a process that needs to be killed, press \u201ck\u201d which will ask for the process id, and signal to send. If you have the privilege to kill that particular PID, it will get killed successfully.<\/p>\n<pre>PID to kill: 1309\nKill PID 1309 with signal [15]:\n  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND\n 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent\n 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent\n 5136 root    16   0 38040  14m 9836 S    0  0.2   0:00.39 nautilus<\/pre>\n<p>Use top -u to display a specific user processes only in the top command output.<\/p>\n<pre>$ top -u geek<\/pre>\n<p>While unix top command is running, press u which will ask for username as shown below.<\/p>\n<pre>Which user (blank for all): geek\n  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND\n 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent\n 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent<\/pre>\n<p>More top examples: <a href=\"http:\/\/www.thegeekstuff.com\/2010\/01\/15-practical-unix-linux-top-command-examples\/\">15 Practical Linux Top Command Examples<\/a><\/p>\n<h3>10. Pmap<\/h3>\n<p>pmap command displays the memory map of a given process. You need to pass the pid as an argument to the pmap command.<\/p>\n<p>The following example displays the memory map of the current bash shell. In this example, 5732 is the PID of the bash shell.<\/p>\n<pre>$ pmap 5732\n5732:   -bash\n00393000    104K r-x--  \/lib\/ld-2.5.so\n003b1000   1272K r-x--  \/lib\/libc-2.5.so\n00520000      8K r-x--  \/lib\/libdl-2.5.so\n0053f000     12K r-x--  \/lib\/libtermcap.so.2.0.8\n0084d000     76K r-x--  \/lib\/libnsl-2.5.so\n00c57000     32K r-x--  \/lib\/libnss_nis-2.5.so\n00c8d000     36K r-x--  \/lib\/libnss_files-2.5.so\nb7d6c000   2048K r----  \/usr\/lib\/locale\/locale-archive\nbfd10000     84K rw---    [ stack ]\n total     4796K<\/pre>\n<p>pmap -x gives some additional information about the memory maps.<\/p>\n<pre>$  pmap -x 5732\n5732:   -bash\nAddress   Kbytes     RSS    Anon  Locked Mode   Mapping\n00393000     104       -       -       - r-x--  ld-2.5.so\n003b1000    1272       -       -       - r-x--  libc-2.5.so\n00520000       8       -       -       - r-x--  libdl-2.5.so\n0053f000      12       -       -       - r-x--  libtermcap.so.2.0.8\n0084d000      76       -       -       - r-x--  libnsl-2.5.so\n00c57000      32       -       -       - r-x--  libnss_nis-2.5.so\n00c8d000      36       -       -       - r-x--  libnss_files-2.5.so\nb7d6c000    2048       -       -       - r----  locale-archive\nbfd10000      84       -       -       - rw---    [ stack ]\n-------- ------- ------- ------- -------\ntotal kB    4796       -       -       -<\/pre>\n<p>To display the device information of the process maps use \u2018pamp -d pid\u2019.<\/p>\n<h3>11. Netstat<\/h3>\n<p>Netstat command displays various network related information such as network connections, routing tables, interface statistics, masquerade connections, multicast memberships etc.,<\/p>\n<p>The following are some netstat command examples.<\/p>\n<p>List all ports (both listening and non listening) using netstat -a as shown below.<\/p>\n<pre># netstat -a | more\nActive Internet connections (servers and established)\nProto Recv-Q Send-Q Local Address           Foreign Address         State\ntcp        0      0 localhost:30037         *:*                     LISTEN\nudp        0      0 *:bootpc                *:*\n\nActive UNIX domain sockets (servers and established)\nProto RefCnt Flags       Type       State         I-Node   Path\nunix  2      [ ACC ]     STREAM     LISTENING     6135     \/tmp\/.X11-unix\/X0\nunix  2      [ ACC ]     STREAM     LISTENING     5140     \/var\/run\/acpid.socket<\/pre>\n<p>Use the following netstat command to find out on which port a program is running.<\/p>\n<pre># netstat -ap | grep ssh\n(Not all processes could be identified, non-owned process info\n will not be shown, you would have to be root to see it all.)\ntcp        1      0 dev-db:ssh           101.174.100.22:39213        CLOSE_WAIT  -\ntcp        1      0 dev-db:ssh           101.174.100.22:57643        CLOSE_WAIT  -<\/pre>\n<p>Use the following netstat command to find out which process is using a particular port.<\/p>\n<pre># netstat -an | grep ':80'<\/pre>\n<p>More netstat examples: <a href=\"http:\/\/www.thegeekstuff.com\/2010\/03\/netstat-command-examples\/\">10 Netstat Command Examples<\/a><\/p>\n<h3>12. IPTraf<\/h3>\n<p>IPTraf is a IP Network Monitoring Software. The following are some of the main features of IPTraf:<\/p>\n<ul>\n<li>It is a console based (text-based) utility.<\/li>\n<li>This displays IP traffic crossing over your network. This displays TCP flag, packet and byte counts, ICMP, OSPF packet types, etc.<\/li>\n<li>Displays extended interface statistics (including IP, TCP, UDP, ICMP, packet size and count, checksum errors, etc.)<\/li>\n<li>LAN module discovers hosts automatically and displays their activities<\/li>\n<li>Protocol display filters to view selective protocol traffic<\/li>\n<li>Advanced Logging features<\/li>\n<li>Apart from ethernet interface it also supports FDDI, ISDN, SLIP, PPP, and loopback<\/li>\n<li>You can also run the utility in full screen mode. This also has a text-based menu.<\/li>\n<\/ul>\n<p>More info:\u00a0<a href=\"http:\/\/iptraf.seul.org\/\">IPTraf Home Page<\/a>. <a href=\"http:\/\/iptraf.seul.org\/shots.html\">IPTraf screenshot<\/a>.<\/p>\n<h3>13. Strace<\/h3>\n<p>Strace is used for debugging and troubleshooting the execution of an executable on Linux environment. It displays the system calls used by the process, and the signals received by the process.<\/p>\n<p>Strace monitors the system calls and signals of a specific program. It is helpful when you do not have the source code and would like to debug the execution of a program. strace provides you the execution sequence of a binary from start to end.<\/p>\n<p>Trace a Specific System Calls in an Executable Using Option -e<\/p>\n<p>Be default, strace displays all system calls for the given executable. The following example shows the output of strace for the Linux ls command.<\/p>\n<pre>$ strace ls\nexecve(\"\/bin\/ls\", [\"ls\"], [\/* 21 vars *\/]) = 0\nbrk(0)                                  = 0x8c31000\naccess(\"\/etc\/ld.so.nohwcap\", F_OK)      = -1 ENOENT (No such file or directory)\nmmap2(NULL, 8192, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78c7000\naccess(\"\/etc\/ld.so.preload\", R_OK)      = -1 ENOENT (No such file or directory)\nopen(\"\/etc\/ld.so.cache\", O_RDONLY)      = 3\nfstat64(3, {st_mode=S_IFREG|0644, st_size=65354, ...}) = 0<\/pre>\n<p>To display only a specific system call, use the strace -e option as shown below.<\/p>\n<pre>$ strace -e open ls\nopen(\"\/etc\/ld.so.cache\", O_RDONLY)      = 3\nopen(\"\/lib\/libselinux.so.1\", O_RDONLY)  = 3\nopen(\"\/lib\/librt.so.1\", O_RDONLY)       = 3\nopen(\"\/lib\/libacl.so.1\", O_RDONLY)      = 3\nopen(\"\/lib\/libc.so.6\", O_RDONLY)        = 3\nopen(\"\/lib\/libdl.so.2\", O_RDONLY)       = 3\nopen(\"\/lib\/libpthread.so.0\", O_RDONLY)  = 3\nopen(\"\/lib\/libattr.so.1\", O_RDONLY)     = 3\nopen(\"\/proc\/filesystems\", O_RDONLY|O_LARGEFILE) = 3\nopen(\"\/usr\/lib\/locale\/locale-archive\", O_RDONLY|O_LARGEFILE) = 3\nopen(\".\", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3<\/pre>\n<p>More strace examples: <a href=\"http:\/\/www.thegeekstuff.com\/2011\/11\/strace-examples\/\">7 Strace Examples to Debug the Execution of a Program in Linux<\/a><\/p>\n<h3>14. Lsof<\/h3>\n<p>Lsof stands for ls open files, which will list all the open files in the system. The open files include network connection, devices and directories. The output of the lsof command will have the following columns:<\/p>\n<ul>\n<li>COMMAND process name.<\/li>\n<li>PID process ID<\/li>\n<li>USER Username<\/li>\n<li>FD file descriptor<\/li>\n<li>TYPE node type of the file<\/li>\n<li>DEVICE device number<\/li>\n<li>SIZE file size<\/li>\n<li>NODE node number<\/li>\n<li>NAME full path of the file name.<\/li>\n<\/ul>\n<p>To view all open files of the system, execute the lsof command without any parameter as shown below.<\/p>\n<pre># lsof | more\nCOMMAND     PID       USER   FD      TYPE     DEVICE      SIZE       NODE NAME\ninit          1       root  cwd       DIR        8,1      4096          2 \/\ninit          1       root  rtd       DIR        8,1      4096          2 \/\ninit          1       root  txt       REG        8,1     32684     983101 \/sbin\/init\ninit          1       root  mem       REG        8,1    106397     166798 \/lib\/ld-2.3.4.so\ninit          1       root  mem       REG        8,1   1454802     166799 \/lib\/tls\/libc-2.3.4.so\ninit          1       root  mem       REG        8,1     53736     163964 \/lib\/libsepol.so.1\ninit          1       root  mem       REG        8,1     56328     166811 \/lib\/libselinux.so.1\ninit          1       root   10u     FIFO       0,13                  972 \/dev\/initctl\nmigration     2       root  cwd       DIR        8,1      4096          2 \/\nskipped..<\/pre>\n<p>To view open files by a specific user, use lsof -u option to display all the files opened by a specific user.<\/p>\n<pre># lsof -u ramesh\nvi      7190 ramesh  txt    REG        8,1   474608   475196 \/bin\/vi\nsshd    7163 ramesh    3u  IPv6   15088263               TCP dev-db:ssh-&gt;abc-12-12-12-12.<\/pre>\n<p>To list users of a particular file, use lsof as shown below. In this example, it displays all users who are currently using vi.<\/p>\n<pre># lsof \/bin\/vi\nCOMMAND  PID  USER    FD   TYPE DEVICE   SIZE   NODE NAME\nvi      7258  root   txt    REG    8,1 474608 475196 \/bin\/vi\nvi      7300  ramesh txt    REG    8,1 474608 475196 \/bin\/vi<\/pre>\n<h3>15. Ntop<\/h3>\n<p>Ntop is just like top, but for network traffic. ntop is a network traffic monitor that displays the network usage.<\/p>\n<p>You can also access ntop from browser to get the traffic information and network status.<\/p>\n<p>The following are some the key features of ntop:<\/p>\n<ul>\n<li>Display network traffic broken down by protocols<\/li>\n<li>Sort the network traffic output based on several criteria<\/li>\n<li>Display network traffic statistics<\/li>\n<li>Ability to store the network traffic statistics using RRD<\/li>\n<li>Identify the identify of the users, and host os<\/li>\n<li>Ability to analyze and display IT traffic<\/li>\n<li>Ability to work as NetFlow\/sFlow collector for routers and switches<\/li>\n<li>Displays network traffic statistics similar to RMON<\/li>\n<li>Works on Linux, MacOS and Windows<\/li>\n<\/ul>\n<p>More info: <a href=\"http:\/\/www.ntop.org\/products\/ntop\/\">Ntop home page<\/a><\/p>\n<h3>16. GkrellM<\/h3>\n<p>GKrellM stands for GNU Krell Monitors, or GTK Krell Meters. It is GTK+ toolkit based monitoring program, that monitors various sytem resources. The UI is stakable. i.e you can add as many monitoring objects you want one on top of another. Just like any other desktop UI based monitoring tools, it can monitor CPU, memory, file system, network usage, etc. But using plugins you can monitoring external applications.<\/p>\n<p>More info: <a href=\"http:\/\/www.gkrellm.net\/\">GkrellM home page<\/a><\/p>\n<h3>17. w and uptime<\/h3>\n<p>While monitoring system performance, w command will hlep to know who is logged on to the system.<\/p>\n<pre>$ w\n09:35:06 up 21 days, 23:28,  2 users,  load average: 0.00, 0.00, 0.00\nUSER     TTY      FROM          LOGIN@   IDLE   JCPU   PCPU WHAT\nroot     tty1     :0            24Oct11  21days 1:05   1:05 \/usr\/bin\/Xorg :0 -nr -verbose\nramesh   pts\/0    192.168.1.10  Mon14    0.00s  15.55s 0.26s sshd: localuser [priv]\njohn     pts\/0    192.168.1.11  Mon07    0.00s  19.05s 0.20s sshd: localuser [priv]\njason    pts\/0    192.168.1.12  Mon07    0.00s  21.15s 0.16s sshd: localuser [priv]<\/pre>\n<p>For each and every user who is logged on, it displays the following info:<\/p>\n<ul>\n<li>Username<\/li>\n<li>tty info<\/li>\n<li>Remote host ip-address<\/li>\n<li>Login time of the user<\/li>\n<li>How long the user has been idle<\/li>\n<li>JCPU and PCUP<\/li>\n<li>The command of the current process the user is executing<\/li>\n<\/ul>\n<p>Line 1 of the w command output is similar to the uptime command output. It displays the following:<\/p>\n<ul>\n<li>Current time<\/li>\n<li>How long the system has been up and running<\/li>\n<li>Total number of users who are currently logged on the system<\/li>\n<li>Load average for the last 1, 5 and 15 minutes<\/li>\n<\/ul>\n<p>If you want only the uptime information, use the uptime command.<\/p>\n<pre>$ uptime\n 09:35:02 up 106 days, 28 min,  2 users,  load average: 0.08, 0.11, 0.05<\/pre>\n<p>Please note that both w and uptime command gets the information from the \/var\/run\/utmp data file.<\/p>\n<h3>18. \/proc<\/h3>\n<p>\/proc is a virtual file system. For example, if you do ls -l \/proc\/stat, you\u2019ll notice that it has a size of 0 bytes, but if you do \u201ccat \/proc\/stat\u201d, you\u2019ll see some content inside the file.<\/p>\n<p>Do a ls -l \/proc, and you\u2019ll see lot of directories with just numbers. These numbers represents the process ids, the files inside this numbered directory corresponds to the process with that particular PID.<\/p>\n<p>The following are the important files located under each numbered directory (for each process):<\/p>\n<ul>\n<li>cmdline \u2013 command line of the command.<\/li>\n<li>environ \u2013 environment variables.<\/li>\n<li>fd \u2013 Contains the file descriptors which is linked to the appropriate files.<\/li>\n<li>limits \u2013 Contains the information about the specific limits to the process.<\/li>\n<li>mounts \u2013 mount related information<\/li>\n<\/ul>\n<p>The following are the important links under each numbered directory (for each process):<\/p>\n<ul>\n<li>cwd \u2013 Link to current working directory of the process.<\/li>\n<li>exe \u2013 Link to executable of the process.<\/li>\n<li>root \u2013 Link to the root directory of the process.<\/li>\n<\/ul>\n<p>More \/proc examples: <a href=\"http:\/\/www.thegeekstuff.com\/2010\/11\/linux-proc-file-system\/\">Explore Linux \/proc File System<\/a><\/p>\n<h3>19. KDE System Guard<\/h3>\n<p>This is also called as KSysGuard. On Linux desktops that run KDE, you can use this tool to monitor system resources. Apart from monitoring the local system, this can also monitor remote systems.<\/p>\n<p>If you are running KDE desktop, go to Applications -&gt; System -&gt; System Monitor, which will launch the KSysGuard. You can also type ksysguard from the command line to launch it.<\/p>\n<p>This tool displays the following two tabs:<\/p>\n<ul>\n<li>Process Table \u2013 Displays all active processes. You can sort, kill, or change priority of the processes from here<\/li>\n<li>System Load \u2013 Displays graphs for CPU, Memory, and Network usages. These graphs can be customized by right cliking on any of these graphs.<\/li>\n<\/ul>\n<p>To connect to a remote host and monitor it, click on File menu -&gt; Monitor Remote Machine -&gt; specify the ip-address of the host, the connection method (for example, ssh). This will ask you for the username\/password on the remote machine. Once connected, this will display the system usage of the remote machine in the Process Table and System Load tabs.<\/p>\n<h3>20. GNOME System Monitor<\/h3>\n<p>On Linux desktops that run GNOME, you can use the this tool to monitor processes, system resources, and file systems from a graphical interface. Apart from monitoring, you can also use this UI tool to kill a process, change the priority of a process.<\/p>\n<p>If you are running GNOME desktop, go to System -&gt; Administration -&gt; System Monitor, which will launch the GNOME System Monitor. You can also type gnome-system-monitor from the command line to launch it.<\/p>\n<p>This tool has the following four tabs:<\/p>\n<ul>\n<li>System \u2013 Displays the system information including Linux distribution version, system resources, and hardware information.<\/li>\n<li>Processes \u2013 Displays all active processes that can be sorted based on various fields<\/li>\n<li>Resources \u2013 Displays CPU, memory and network usages<\/li>\n<li>File Systems \u2013 Displays information about currently mounted file systems<\/li>\n<\/ul>\n<p>More info: <a href=\"http:\/\/library.gnome.org\/users\/gnome-system-monitor\/\">GNOME System Monitor home page<\/a><\/p>\n<h3>21. Conky<\/h3>\n<p>Conky is a system monitor or X. Conky displays information in the UI using what it calls objects. By default there are more than 250 objects that are bundled with conky, which displays various monitoring information (CPU, memory, network, disk, etc.). It supports IMAP, POP3, several audio players.<\/p>\n<p>You can monitor and display any external application by craeting your own objects using scripting. The monitoring information can be displays in various format: Text, graphs, progress bars, etc. This utility is extremly configurable.<\/p>\n<p>More info: <a href=\"http:\/\/conky.sourceforge.net\/screenshots.html\">Conky screenshots<\/a><\/p>\n<h3>22. Cacti<\/h3>\n<p>Cacti is a PHP based UI frontend for the RRDTool. Cacti stores the data required to generate the graph in a MySQL database.<\/p>\n<p>The following are some high-level features of Cacti:<\/p>\n<ul>\n<li>Ability to perform the data gathering and store it in MySQL database (or round robin archives)<\/li>\n<li>Several advanced graphing featurs are available (grouping of GPRINT graph items, auto-padding for graphs, manipulate graph data using CDEF math function, all RRDTool graph items are supported)<\/li>\n<li>The data source can gather local or remote data for the graph<\/li>\n<li>Ability to fully customize Round robin archive (RRA) settings<\/li>\n<li>User can define custom scripts to gather data<\/li>\n<li>SNMP support (php-snmp, ucd-snmp, or net-snmp) for data gathering<\/li>\n<li>Built-in poller helps to execute custom scripts, get SNMP data, update RRD files, etc.<\/li>\n<li>Highly flexible graph template features<\/li>\n<li>User friendly and customizable graph display options<\/li>\n<li>Create different users with various permission sets to access the cacti frontend<\/li>\n<li>Granular permission levels can be set for the individual user<\/li>\n<li>and lot more..<\/li>\n<\/ul>\n<p>More info: <a href=\"http:\/\/www.cacti.net\/index.php\">Cacti home page<\/a><\/p>\n<h3>23. Vnstat<\/h3>\n<p>vnstat is a command line utility that displays and logs network traffic of the interfaces on your systems. This depends on the network statistics provided by the kernel. So, vnstat doesn\u2019t add any additional load to your system for monitoring and logging the network traffic.<\/p>\n<p>vnstat without any argument will give you a quick summary with the following info:<\/p>\n<ul>\n<li>The last time when the vnStat datbase located under \/var\/lib\/vnstat\/ was updated<\/li>\n<li>From when it started collecting the statistics for a specific interface<\/li>\n<li>The network statistic data (bytes transmitted, bytes received) for the last two months, and last two days.<\/li>\n<\/ul>\n<pre># vnstat\nDatabase updated: Sat Oct 15 11:54:00 2011\n\n   eth0 since 10\/01\/11\n\n          rx:  12.89 MiB      tx:  6.94 MiB      total:  19.82 MiB\n\n   monthly\n                     rx      |     tx      |    total    |   avg. rate\n     ------------------------+-------------+-------------+---------------\n       Sep '11     12.90 MiB |    6.90 MiB |   19.81 MiB |    0.14 kbit\/s\n       Oct '11     12.89 MiB |    6.94 MiB |   19.82 MiB |    0.15 kbit\/s\n     ------------------------+-------------+-------------+---------------\n     estimated        29 MiB |      14 MiB |      43 MiB |\n\n\t daily\n                     rx      |     tx      |    total    |   avg. rate\n     ------------------------+-------------+-------------+---------------\n     yesterday      4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit\/s\n         today      2.03 MiB |    1.07 MiB |    3.10 MiB |    0.59 kbit\/s\n     ------------------------+-------------+-------------+---------------\n     estimated         4 MiB |       2 MiB |       6 MiB |<\/pre>\n<p>Use \u201cvnstat -t\u201d or \u201cvnstat \u2013top10\u2033 to display all time top 10 traffic days.<\/p>\n<pre>$ vnstat --top10\n\n eth0  \/  top 10\n\n    #      day          rx      |     tx      |    total    |   avg. rate\n   -----------------------------+-------------+-------------+---------------\n    1   10\/12\/11       4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit\/s\n    2   10\/11\/11       4.07 MiB |    2.17 MiB |    6.24 MiB |    0.59 kbit\/s\n    3   10\/10\/11       2.48 MiB |    1.28 MiB |    3.76 MiB |    0.36 kbit\/s\n    ....\n   -----------------------------+-------------+-------------+---------------<\/pre>\n<p>More vnstat Examples: <a href=\"http:\/\/www.thegeekstuff.com\/2011\/11\/vnstat-network-traffic-monitor\/\">How to Monitor and Log Network Traffic using VNStat<\/a><\/p>\n<h3>24. Htop<\/h3>\n<p>htop is a ncurses-based process viewer. This is similar to top, but is more flexible and user friendly. You can interact with the htop using mouse. You can scroll vertically to view the full process list, and scroll horizontally to view the full command line of the process.<\/p>\n<p>htop output consists of three sections 1) header 2) body and 3) footer.<\/p>\n<p><strong>Header<\/strong> displays the following three bars, and few vital system information. You can change any of these from the htop setup menu.<\/p>\n<ul>\n<li>CPU Usage: Displays the %used in text at the end of the bar. The bar itself will show different colors. Low-priority in blue, normal in green, kernel in red.<\/li>\n<li>Memory Usage<\/li>\n<li>Swap Usage<\/li>\n<\/ul>\n<p><strong>Body<\/strong> displays the list of processes sorted by %CPU usage. Use arrow keys, page up, page down key to scoll the processes.<\/p>\n<p><strong>Footer<\/strong> displays htop menu commands.<\/p>\n<p>More info: <a href=\"http:\/\/www.thegeekstuff.com\/2011\/09\/linux-htop-examples\/\">HTOP Screenshot and Examples<\/a><\/p>\n<h3>25. Socket Statistics \u2013 SS<\/h3>\n<p>ss stands for socket statistics. This displays information that are similar to netstat command.<\/p>\n<p>To display all listening sockets, do ss -l as shown below.<\/p>\n<pre>$ ss -l\nRecv-Q Send-Q   Local Address:Port     Peer Address:Port\n0      100      :::8009                :::*\n0      128      :::sunrpc              :::*\n0      100      :::webcache            :::*\n0      128      :::ssh                 :::*\n0      64       :::nrpe                :::*<\/pre>\n<p>The following displays only the established connection.<\/p>\n<pre>$ ss -o state established\nRecv-Q Send-Q   Local Address:Port   Peer Address:Port\n0      52       192.168.1.10:ssh   192.168.2.11:55969    timer:(on,414ms,0)<\/pre>\n<p>The following displays socket summary statistics. This displays the total number of sockets broken down by the type.<\/p>\n<pre>$ ss -s\nTotal: 688 (kernel 721)\nTCP:   16 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0\/0), ports 11\n\nTransport Total     IP        IPv6\n*         721       -         -\nRAW       0         0         0\nUDP       13        10        3\nTCP       16        7         9\nINET      29        17        12\nFRAG      0         0         0<\/pre>\n<p><strong>What tool do you use to monitor performance on your Linux environment? Did I miss any of your favorite performance monitoring tool? <a href=\"http:\/\/www.thegeekstuff.com\/2011\/12\/linux-performance-monitoring-tools\/#respond\">Leave a comment<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/www.thegeekstuff.com\/2011\/12\/linux-performance-monitoring-tools\/ I\u2019ve compiled 25 performance monitoring and debugging tools that will be helpful when you are working on Linux environment. This list is not comprehensive or authoritative by any means. However this list has enough tools for you to play around and pick the one that is suitable your specific debugging and monitoring scenario. 1. SAR Using sar utility you can do two things: 1) Monitor system real time performance (CPU, Memory, I\/O, etc) 2) Collect performance data in the background on an on-going basis and do analysis on the historical data to identify bottlenecks. Sar is part of the sysstat package. The following are some of the things you can do using sar utility. Collective CPU usage Individual CPU statistics Memory used and available Swap space used and available Overall I\/O activities of the system Individual device I\/O activities Context switch statistics Run queue and load average data Network statistics Report sar data from a specific time and lot more.. The following sar command will display the system CPU statistics 3 times (with 1 second interval). The following \u201csar -b\u201d command reports I\/O statistics. \u201c1 3\u2033 indicates that the sar -b will be executed for every 1 second for [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"ngg_post_thumbnail":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[4,5],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5q9Zn-dm","jetpack-related-posts":[{"id":947,"url":"https:\/\/blog.box.kr\/?p=947","url_meta":{"origin":828,"position":0},"title":"System Monitoring command","date":"2015-07-30","format":false,"excerpt":"1. OS\/system $\u00a0vmstat 2 10 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/\u00a010 system resource status to every 2 sec. $ iostat 2 10 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/ 10 I\/O status to every 2 sec. $\u00a0sar\u00a02 10 \u00a0 \u00a0 \u00a0\u2026","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":373,"url":"https:\/\/blog.box.kr\/?p=373","url_meta":{"origin":828,"position":1},"title":"Application Performance Monitoring (APM) Framework for J2EE Applications","date":"2014-09-15","format":false,"excerpt":"https:\/\/code.google.com\/p\/monitor-24x7\/ \u00a0 Description 24x7Monitoring is an Open Source Application Performance Monitoring (APM) Framework for J2EE Applications that uses Aspect Oriented Programming to collect Performance metrics about the running JVM and display the data to the user in a tabular\/graphical format. 24x7Monitoring does not require any modification to the source code\u2026","rel":"","context":"In &quot;\ucc38\uace0\ub97c \uc704\ud55c \uc800\uc7a5\ubb3c&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":857,"url":"https:\/\/blog.box.kr\/?p=857","url_meta":{"origin":828,"position":2},"title":"[scrap]\ub9ac\ub205\uc2a4\uc5d0\uc11c Disk IO \ubc0f \uc2dc\uc2a4\ud15c \ub9ac\uc18c\uc2a4 \ubaa8\ub2c8\ud130\ub9c1","date":"2015-05-20","format":false,"excerpt":"http:\/\/solarixer.blogspot.kr\/2010\/10\/disk-io.html \ub9ac\ub205\uc2a4 \uc0c1\uc5d0\uc11c \uc2dc\uc2a4\ud15c \ub9ac\uc18c\uc2a4 \ubaa8\ub2c8\ud130\ub9c1 \ud560 \ub54c \ubcf4\ud1b5 \uc544\ub798\uc640 \uac19\uc740 command \ub97c \uc0ac\uc6a9\ud55c\ub2e4. CPU \uc815\ubcf4\ub97c \ubcfc\ub54c \ubcf4\ud1b5 top \uc774\ub098 sar \ub4f1\uc73c\ub85c \ubcf4\uace0 \ud504\ub85c\uc138\uc2a4 \uc815\ubcf4\ub97c \ubcfc \ub550 \ubcf4\ud1b5 ps \ub97c \uc0ac\uc6a9\ud558\uba70 \uba54\ubaa8\ub9ac \uc815\ubcf4\ub97c \ubcfc \ub550 free , vmstat \ub4f1\uc744 \uc0ac\uc6a9\ud55c\ub2e4. \ub514\uc2a4\ud06c IO \ubaa8\ub2c8\ud130\ub9c1 \ud234\uc740 \uba87 \uac1c \uc0ac\uc6a9\ud574\ubcf4\ub2c8 iostat \uc73c\ub85c \ubcf4\ub294\u2026","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":945,"url":"https:\/\/blog.box.kr\/?p=945","url_meta":{"origin":828,"position":3},"title":"TCPDump: Capture and Record Specific Protocols \/ Port","date":"2015-07-28","format":false,"excerpt":"http:\/\/www.cyberciti.biz\/faq\/tcpdump-capture-record-protocols-port\/ Q. How do I capture specific protocol or port such as 80 ( http ) using TCPDump tool under Linux \/ UNIX? How do I recording Traffic with TCPDump and find problems later on? A. TCPDump is a tool for network monitoring and data acquisition. It can save lots\u2026","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":842,"url":"https:\/\/blog.box.kr\/?p=842","url_meta":{"origin":828,"position":4},"title":"[scrap]Does Monitoring Still Suck?","date":"2015-05-20","format":false,"excerpt":"http:\/\/java.dzone.com\/articles\/does-monitoring-still-suck?mz=110215-high-perf&utm_content=buffer692ef&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer \u00a0 [This article by David Gildeh\u00a0comes to you from the\u00a0DZone Guide to Performance & Monitoring -- 2015 Edition. For additional information including insight\u00a0from industry experts and luminaries, performance statistics and strategies, and an overview of how modern companies are handling application monitoring, download the guide below.] In 2011, several\u2026","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":838,"url":"https:\/\/blog.box.kr\/?p=838","url_meta":{"origin":828,"position":5},"title":"[scrap]Server and Storage I\/O Benchmarking and Performance Resources","date":"2015-05-20","format":false,"excerpt":"http:\/\/java.dzone.com\/articles\/server-and-storage-io?utm_content=bufferf3e10&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer \u00a0 The following are a list of various articles, tips, post and other resources about\u00a0server storage\u00a0I\/O performance\u00a0benchmarking for legacy, virtual, cloud and software defined environments along with associated tools. The best server and storage I\/O\u00a0(input\/output operation) is the one that you do not have to do, the second best\u2026","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"server storage I\/O locality of reference","src":"https:\/\/i0.wp.com\/storageio.com\/images\/SIO_IndustryTrends_Locality.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/828"}],"collection":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=828"}],"version-history":[{"count":0,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/828\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}