Need to monitor Linux server system performance? Try these tools built in or attached to the system below. Most Linux distributions are equipped with a large number of monitoring tools. These tools provide metrics that can be used to obtain relevant information and system activities. You can use these tools to discover possible causes of performance problems. The tools discussed here are just some of the most basic tools for analyzing and debugging the server under the problem.
1. Identify bottlenecks
2. Hard disk (storage) bottleneck
3.CPU and Memory bottlenecks
4. Network bottlenecks
#1: top-process activity
Top provides a real-time, dynamic view of the current running system, which is the running process. By default, displays the task with the highest CPU utilization in the system and refreshes every 5 seconds.
Figure 01. Linux Top Command
Common hotkeys
Hotkey Usage
T displays the summary information switch.
m Displays the memory information switch.
A classification shows the use of different resources of the system. Helps to quickly identify tasks that are resource-intensive in your system.
F Add Delete the field you want to display.
o Adjust the order in which you want to display the fields.
R adjusts the nice value of a running process.
K to end a running process.
Z Color/Black and white display switch
#2: Vmstat-system activity, hardware and system Information
Use the Vmstat command to get information about processes, memory, memory paging, blocking IO, traps, and CPU activity.
# Vmstat 3
Sample output:
procs-----------Memory-------------Swap-------io------System-------CPU------r b swpd free buff cache si so bi bo in CS US sy ID wa st0 0 0 2540988 522188 5130400 & nbsp 0 0 2 32 4 2 4 1 96 0 01 0 0 2540988 522188 5130400 0 & nbsp; 0 0 720 1199 665 1 0 99 0 00 0 & nbsp; 0 2540956 522188 5130400 0 0 0 0 1151 1569 4 1 95 0 00 0 0 2540956 5 22188 5130500 0 0&NBsp; 0 6 1117 439 1 0 99 0 00 0 0 2540940 522188 5130512 0 0 0 536 1189 932 1 0 98 0 00 0 0 2538444 522188 51305 88 0 0 0 0 1187 1417 4 1 96 0 00 0 0 2490060 522188 5130640 0 & nbsp; 0 0 1253 1123 5 1 94 0 0 Show memory usage details
# VMSTAT-M shows memory Active/inactive information
#3: W-show who is logged in, what are they doing?
The W command displays information about the current user of the system and its running process.
# W Username
# w Vivek
Sample output:
17:58:47 up 5 days, 20:28, 2 users, load average:0.36, 0.26, 0.24USER TTY from [email protected] IDLE jcpu PCPU whatroot pts/0 10.1.3.145 14:55 5.00s 0.04s 0.02s vim/etc/resolv.confroot pts/ 1 10.1.3.145 17:43 0.00s 0.03s 0.00s w#4:uptime-Tell the system how long has it been running?
The uptime command used to show only how long the system was running. Now, you can show how long the system is running, how many users are currently logged in, and what the average load is in the last 1, 5, 15 minutes.
# uptime
Input Sample:
18:02:41 up, 23:42, 1 user, Load average:0.00, 0.00, 0.001 can be considered the optimal load value. The load will vary with the system. Single CPU system 1-3 and SMP system 6-10 are all possible to accept.
#5: PS-Show process
The PS command displays a snapshot of the currently running process. Displays all processes using-a or-E.
# ps-a
Sample output:
PID tty Time CMD1? 00:00:02 init2? 00:00:02 migration/03? 00:00:01 ksoftirqd/04? 00:00:00 watchdog/05? 00:00:00 migration/16? 00:00:15 ksoftirqd/1.........4881? 00:53:28 java4885 tty1 00:00:00 mingetty4886 tty2 00:00:00 mingetty4887 tty3 00:00:00 mingetty4888 tty4 00:00:00 mingetty4891 tty5 00:00:00 mingetty4892 tty6 00:00:00 mingetty4893 ttys1 00:00:00 agetty12853? 00:00:00 cifsoplockd12854? 00:00:00 cifsdnotifyd14231? 00:10:34 lighttpd14232? 00:00:00 php-cgi54981 pts/0 00:00:00 vim55465? 00:00:00 php-cgi55546? 00:00:00 bind9-snmp-stat55704 pts/1 00:00:00 PSPs is very similar to top, but PS provides more information.
Output Long format
# Ps-al Output Additional full format (shows parameters passed in when the process is executing)
# ps-alf Show Process structure
# PS-ALFH
Show threads after a process
# PS-ALLM
Print all processes on the server
# PS AX
# PS Axu
Print Process Tree
# PS-EJH
# PS AXJF
# Pstree
Print security information
# Ps-eo Euser,ruser,suser,fuser,f,comm,label
# PS AXZ
# Ps-em
View processes running with the Vivek user name
# ps-u vivek-u Vivek U
Setting Custom output formats
# Ps-eo Pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
# PS Axo Stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
# Ps-eopid,tt,user,fname,tmout,f,wchan
Show only the LIGHTTPD process ID
# ps-c Lighttpd-o pid=
Or
# pgrep LIGHTTPD
Or
# pgrep-u Vivek PHP-CGI
Show process name with PID 55977
# ps-p 55977-o comm=
Identify the top 10 processes that consume the most memory
# PS-AUXF | Sort-nr-k 4 | Head-10
Find the top 10 processes with the most CPU
# PS-AUXF | Sort-nr-k 3 | Head-10
# vmstat-a
#6: Free-memory usage
The free command displays the idle, used physical memory and swap memory in the system, and the buffer used by the kernel.
# free
Sample output:
Total used free shared buffers cachedmem:12302896 9739664 2563232 0 523124 5154740-/+ buffers/cache:4061800 8241096swap:1052248 0 1052248#7:iostat-cpu average load, HDD activity
The Iostat command reports statistics on the central Processing Unit (CPU), various devices, partitions, and network file system input/output statistics.
# Iostat
Sample output:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009avg-cpu: %user %nice%system%iowait& nbsp %steal %idle3.50 0.09 0.51 0.03 0.00 95.86device: tps blk_read/s blk_wrtn/s blk_read blk_wrtnsda 22.04 31.88 512.03 16193351 260102868sda1 0.00 0.00 0.00 2166 180sda2 22.04 31.87 512.03 16189010 260102688sda3 0.00 0.00 0.00 1615 0#8:sar-collecting and reporting system activities
The SAR command is used to collect, report, and store system activity information. To view the network counters, enter:
# Sar-n DEV | More
Displays the last 24 hours of network counters
# sar-n Dev-f/var/log/sa/sa24 | More
You can also use SAR to display real-time situations
# SAR 4 5
Sample output:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009
06:45:12 PM CPU%user%nice%system%iowait%steal%idle
06:45:16 PM All 2.00 0.00 0.22 0.00 0.00 97.78
06:45:20 PM All 2.07 0.00 0.38 0.03 0.00 97.52
06:45:24 PM All 0.94 0.00 0.28 0.00 0.00 98.78
06:45:28 PM All 1.56 0.00 0.22 0.00 0.00 98.22
06:45:32 PM All 3.53 0.00 0.25 0.03 0.00 96.19
Average:all 2.02 0.00 0.27 0.01 0.00 97.70
#9: Mpstat-Multi-processor utilization
The Mpstat command displays the usage of all available processors, starting with the processor number 0. Mpstat-p all shows the average usage per processor.
# mpstat-p All
Sample output:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009
06:48:11 PM CPU%user%nice%sys%iowait%irq%soft%steal%idle intr/s
06:48:11 PM All 3.50 0.09 0.34 0.03 0.01 0.17 0.00 95.86 1218.04
06:48:11 PM 0 3.44 0.08 0.31 0.02 0.00 0.12 0.00 96.04 1000.31
06:48:11 PM 1 3.10 0.08 0.32 0.09 0.02 0.11 0.00 96.28 34.93
06:48:11 PM 2 4.16 0.11 0.36 0.02 0.00 0.11 0.00 95.25 0.00
06:48:11 PM 3 3.77 0.11 0.38 0.03 0.01 0.24 0.00 95.46 44.80
06:48:11 PM 4 2.96 0.07 0.29 0.04 0.02 0.10 0.00 96.52 25.91
06:48:11 PM 5 3.26 0.08 0.28 0.03 0.01 0.10 0.00 96.23 14.98
06:48:11 PM 6 4.00 0.10 0.34 0.01 0.00 0.13 0.00 95.42 3.75
06:48:11 PM 7 3.30 0.11 0.39 0.03 0.01 0.46 0.00 95.69 76.89#10:pmap-Memory usage of the process
The PMAP command displays the memory map of the process, and uses this command to identify the cause of the memory bottleneck.
# pmap-d PID
Displays the memory information for the PID 47394 process.
# pmap-d 47394
Sample output:
47394:/usr/bin/php-cgi
Address Kbytes Mode Offset Device Mapping
0000000000400000 2584 r-x--0000000000000000 008:00002 php-cgi
0000000000886000-RW---0000000000286000 008:00002 php-cgi
00000000008a9000-RW---00000000008a9000 000:00000 [anon]
0000000000aa8000 rw---00000000002a8000 008:00002 php-cgi
000000000F678000 1980 RW---000000000f678000 000:00000 [anon]
000000314a600000 r-x--0000000000000000 008:00002 ld-2.5.so
000000314a81b000 4 R----000000000001b000 008:00002 ld-2.5.so
000000314a81c000 4 rw---000000000001c000 008:00002 ld-2.5.so
000000314aa00000 1328 r-x--0000000000000000 008:00002 libc-2.5.so
000000314ab4c000 2048-----000000000014c000 008:00002 libc-2.5.so
.....
......
..
00002af8d48fd000 4 rw---0000000000006000 008:00002 xsl.so
00002af8d490c000 r-x--0000000000000000 008:00002 libnss_files-2.5.so
00002af8d4916000 2044-----000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b15000 4 R----0000000000009000 008:00002 libnss_files-2.5.so
00002af8d4b16000 4 rw---000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b17000 768000 rw-s-0000000000000000 000:00009 Zero (deleted)
00007fffc95fe000-RW---00007ffffffea000 000:00000 [stack]
ffffffffff600000 8192-----0000000000000000 000:00000 [anon]
mapped:933712k writeable/private:4304k shared:768000k
The last line is important:
* mapped:933712k Memory Map occupies the space size
* WRITEABLE/PRIVATE:4304K Private address space size
* shared:768000k shared address space size
#11和 #12:netstat and SS-Network-related information
Netstat can display network links, routing table information, interface statistics, spoofing links, and multicast members (multicast memberships), which are used to display network socket information, which allows the display of information similar to netstat. For SS and Netstat use, refer to the following resources.
#13: Iptraf-Network real-time information
The Iptraf is an interactive IP network monitoring tool. It can generate a variety of network statistics including: TCP information, UDP number, ICMP and OSPF information, Ethernet load information, node status, IP checksum error, and so on. There are several information formats:
TCP link traffic on different networks
IP traffic for different network interfaces
Network throughput of different protocols
Different TCP/UDP ports and different packet sizes network throughput
Different second-tier address network traffic
Figure 02: General interface Information: IP traffic for different network interfaces
Figure 03: TCP link Transfer over different networks
#14: tcpdump: Detailed network traffic analysis
Tcpdump is a simple network traffic dump tool, but it is very familiar to the TCP/IP protocol to use well. For example, to display network traffic about DNS, enter:
# tcpdump-i eth1 ' UDP port 53 '
Displays all incoming and outgoing 80-port IPv4 HTTP packets, that is, only packages that contain data are printed. For example: SYN, FIN, and ack-only package inputs:
# tcpdump ' TCP port and (((Ip[2:2)-((IP[0]&0XF) <<2)-((tcp[12]&0xf0) >>2))! = 0) '
To display all the FTP sessions to, enter:
# tcpdump-i eth1 ' DST 202.54.1.5 and (port or 20 ')
Show all HTTP sessions to 192.168.1.5
# tcpdump-ni eth0 ' DST 192.168.1.5 and TCP and port HTTP '
Using Wireshark to browse the details in the dump file, enter:
# tcpdump-n-i eth1-s 0-w output.txt src or DST Port 80
#15: Strace-System call
Track system calls and models, which is useful for debugging Web servers and other servers. Learn how to track processes and features.
#16:/proc file System-Various kernel information
The files in the/proc directory provide detailed information on many different hardware devices and cores. See Linux Kernel/proc for more details. General/proc For example:
# Cat/proc/cpuinfo
# Cat/proc/meminfo
# Cat/proc/zoneinfo
# cat/proc/mounts
#17: Nagios-Server and network monitoring
Nagios is a very popular system and network monitoring software. You can easily monitor all of your hosts, network devices and services. It can send alerts after a failure and recovery. Fan is the abbreviation for "Fully automated Nagios". Fan's goal is to provide Nagios's installation by the Nagios community. To make it easier to install the Nagios server, fan provides a compact disc image in the standard ISO format. This release also includes a set of tools to enhance the user experience.
#18: Cacti-web-based monitoring tools
Cacti is a complete network graphics solution based on RRDtool data storage and graphical capabilities. Cacti provides a fast polling, advanced graphical templates, a variety of data acquisition methods and user management functions. These features have a very user-friendly interface that ensures they can be deployed in a complex network of hundreds of devices. It provides information about networks, CPUs, memory, logged-in users, Apache, DNS, and more.
#19: KDE System Guard
Ksysguard is the next networked system monitoring tool on the KDE desktop. This tool can be run through an SSH session. It offers many features, such as a client/server architecture that monitors both native and remote hosts, and the front-end graphical interface uses so-called sensors to get information and display it. The sensor can return a simple numeric value or a set of tabular information. Provides one or more displays for different types of information. These displays are organized in multiple worksheets, and worksheets can be monolithic stored and loaded. So, Ksysguard is not just a simple task manager, but also a powerful tool to control multiple servers.
Figure 05:kde System Guard
#20: Gnome System Monitor
System Monitor can display the basic information, monitor system processes, system resources, and file system usage. You can also use System Monitor to monitor and modify the behavior of your systems. Although not as powerful as the KDE System Guard, the basic information it provides is very useful for getting started users.
* Displays a variety of basic information about computer hardware and software.
* Linux kernel version
* Gnome Version
* Hardware
* Installed Memory
* Processor and its speed
* System Status
* The currently available hard disk space
* Process
* Memory and swap space
* Network Utilization
* File System
* All mounted file systems and their basic information
Figure 06:the Gnome System Monitor Application
20 Linux system monitoring tools required by the administrator