"Linux" top command

Source: Internet
Author: User
Tags java web

The top command is often used to monitor Linux system conditions, such as CPU, memory usage, the programmer basically knows this command, but it is strange to use it very few people, such as the top monitoring view of the memory value of the meaning of a lot of distortion. This article covers the meaning of various data in the top view and the sorting of the fields of each process (task) in the view through top monitoring of a running Web server.

One. Top Enter view

Top ViewTop View 01 is a basic view of just entering top, and we'll combine this view to explain what each data means.
First line:
10:01:23 Current system time
126 days, 14:29 the system has been running for 126 day, 14 hours, 29 minutes (not restarted during this period)
2 users currently have 2 user login systems
The three numbers behind load average:1.15, 1.42, 1.44 load average are 1-minute, 5-minute, 15-minute loads respectively. The load average data is the number of active processes that are checked every 5 seconds and then calculated by a particular algorithm. If this number is divided by the number of logical CPUs, the result above 5 indicates that the system is overloaded.
Second line:
Tasks task (process), the system now has a total of 183 processes, of which there are 1 in the running, 182 in hibernation (sleep), 0 in the stoped state, and 0 in the zombie State (zombie).
Third line:CPU Status
6.7% the percentage of CPU occupied by US user space.
0.4% Sy Core Space consumes a percentage of the CPU.
0.0% NI changes the priority of the process to occupy a percentage of the CPU (that is, the nice value)
92.9% ID Idle CPU percent
0.0% wa io waiting for CPU percentage
0.0% Hi Hard Interrupt (Hardware IRQ)% of CPU occupied
0.0% si soft interrupt (software interrupts) The percentage of CPU used here is different from the Windows concept, and if you don't understand user space and kernel space, you need to recharge it.
Line Fourth:Memory state
8306544k Total Physical Memory (8GB)
7775876k used total memory in use (7.7GB)
530668k free Memory Total (530M)
79236k Buffers Cache Memory (79M)
Line Fifth:Swap swap partition
2031608k Total swap area (2GB)
Total swap area used by 2556k used (2.5M)
2029052k Free Swap Area total (2GB)
4231276k cached buffer Swap area total (4GB)

The point here is that this data cannot be understood in terms of the Windows memory concept, which is dangerous if you press windows: The total amount of memory in 8G is only 530M of available memory. The memory management of Linux has its particularity, the complex point needs a book to explain, here is simply to say the point and our traditional concept (Windows) is different.

The total amount of memory in use in row four (used) refers to the amount of memory that is now controlled by the system kernel, and the total amount of free memory that the kernel has not included in its control range. The memory that is included in kernel management is not always in use, but also includes the memory that has been used in the past that can now be reused, and the kernel does not return these reusable memory to free, so there is less memory on Linux, but don't worry about it.

If you are accustomed to calculating the number of available memory, here is an approximate formula: The fourth line of Free + fourth row of buffers + fifth row of cached, press this formula for this server's available memory: 530668+79236+4231276 = 4.7GB.

For memory monitoring, in the top we have to monitor the fifth line swap partition used, if this value is constantly changing, indicating that the kernel is constantly in memory and swap data exchange, which is really not enough memory.

Line Sixthis a blank line below line seventh: status monitoring of each process (Task)
PID Process ID
USER Process Owner
PR Process Priority
NI nice value. Negative values indicate high priority, positive values indicate low priority
The total amount of virtual memory used by the VIRT process, in kilobytes. Virt=swap+res
The size, in kilobytes, of the physical memory that is used by the RES (resident size) process and is not swapped out. Res=code+data. Where the code executable consumes the physical memory size, in kilobytes
The amount of physical memory that is used outside the data executable code (segment + stack), in kilobytes
SHR shared memory size, in kilobytes
S process state. d= non-disruptive sleep status r= run s= sleep t= track/stop z= zombie Process
%cpu percentage of CPU time that was last updated to current
Percentage of physical memory used by the%MEM process
Total CPU time used by the time+ process, Unit 1/100 sec
Command process name (commands name/command line) two. Multi-u multi-core CPU monitoring

In the top basic view, press the keypad number 1 to monitor the status of each logical CPU:

Top View

Observe that the server has 16 logical CPUs, which are actually 4 physical CPUs.

three. Process field sorting

By default, when Top is reached, the processes are sorted by CPU consumption, the Java process with process ID 14210 in top view 01 is ranked first (CPU occupied 100%), and the Java process with process ID 14183 is ranked second (CPU consumption 12%). You can change the sort field by keyboard instructions, for example, to monitor which process consumes the most mem, I use the following method:

   1) tap keyboard B (turn on/off the highlight effect), the top view changes as follows:

Top View

We find that the top process with process ID 10704 is highlighted, and the top process is the one that is the only running state (runing) shown in the second row of the view, and you can turn off or turn on the highlight effect of the running process by tapping the Y key.

   2) tap keyboard x (Highlight effect on/off column), the top view changes as follows:

Top View

As you can see, the top default sort column is%cpu.

   3) with SHIFT + > or SHIFT + <, you can change the column to the right or left by pressing SHIFT + > once:

Top View

The view is now sorted according to%mem.

Four. Change the process display field

1) tap the F key and top into another view, where you can arrange the display fields in the base view:

Top View

Here is a list of all the process fields that can be displayed in the top Basic view, fields with * and uppercase letters are visible, fields without * and lowercase are not displayed. If you want to display the code and data two fields in the basic view, you can tap the R and S keys:

Top View

  2) return to the basic view , you can see more code and data two fields:

Top View Five. Additions to the top command

The top command is the preferred command for system monitoring on Linux, but sometimes it does not reach our requirements, such as the current server, where top monitoring has a lot of limitations. This server runs the WebSphere cluster, there are two node services, is "Top view 01" in the eldest, the old 22 Java processes, thetop command is the smallest monitoring unit of the process , so I do not see the number of Java threads and customer connections, And these two indicators are very important indicators of Java Web Services, usually with PS and netstat two commands to complement the top of the shortcomings .

1) Monitor the number of Java threads:

PS grep WC -L

2) Monitor the number of network client connections:

grep grep WC -L

The above two commands, can change the parameters of grep, to achieve more detailed monitoring requirements.

In the Linux system everything is the idea of the implementation of the guidance, all processes running state can be used to obtain files. system root/proc, each digital subdirectory name is the PID of the running process, into any process directory, through which files or directories to observe the process of the various operational indicators, such as the task directory is used to describe the thread of the process, Therefore, you can also get the number of threads running in a process by using the following method (PID refers to the process ID):

ls WC -L

There is also a command pmap in Linux to output the state of the process memory that can be used to analyze the thread stack:

Pmap PID
Resources

[1] http://www.2cto.com/os/201209/157960.html

"Linux" top command

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.