Common Linux System Monitoring command collation

Source: Internet
Author: User

Find the CPU-consuming Java Thread PS command

Command: PS-MP pid-o thread,tid,time or PS-LFP pid

Results show:

The main purpose of this command is to get some information about the threads that correspond to a process. For example, if you want to analyze some of the running bottlenecks of a Java process, you can use this command to find the CPU time of all current thread, the last column here.

For example, a tid:30834 is found here, which takes up the most time.

Through the printf "%xn" 30,834 first into 16, continue to dump the current JVM process through the jstack command stack information. The grep command allows you to find the thread ID information that corresponds to the 16 feed, and you will soon be able to locate the most CPU-consuming code.

Simply explained, jstack the content of this thread of information:

"dboserviceprocessor-4-thread-295" daemon prio=10 tid=0x00002aab047a9800 nid=0x7d9b waiting on condition [ 0X0000000046F66000]

Nid: The corresponding Linux operating system under the TID, is the previous conversion of the 16 binary digits

Tid: This should be the only address location in the JVM's JMM memory specification, and if you can use it in a detailed analysis of some of the JVM's memory data, I'm not in that position, so let's put it down.

Top command

Command: TOP-HP PID

The results show:

And the previous effect, you can track it in real time and get the most CPU-consuming threads in the specified process. The previous method is used to extract the corresponding thread stack information.

Determining I/O bottlenecks

Mpstat command

Command: Mpstat-p all 1 1000

The results show:

Notice the%iowait column in this, the time the CPU spends waiting for I/O operations. This value continues to be high and can often be caused by an I/O bottleneck.

This parameter makes it more intuitive to see if there is a bottleneck in the current I/O operation.

Iostat command

Command: iostat-m-X 1 1000

Also, you can observe the%iowait data in the corresponding CPU, in addition to the Iostat also provides some more detailed I/O state data, such as more important:

Avgqu-sz:the average queue Length of the requests that were issued to the device. (Disk queue request length, normal 2,3 is better.) Can be understood as CPU load)

Await:the average time (in milliseconds) for I/O requests issued to the device to is served. (Represents the total time from wait to completion of an I/O operation)

Both SVCTM and%util represent the time spent on processing the I/O request and the CPU time scale. These two parameters are not primary when judging whether the bottleneck

r/s w/s and rmb/s wmb/s are some of the states that represent the I/O that the current system is processing, which is what we often call TPS, the latter being throughput. This is also the evaluation of a system performance indicators

PID command

Command: Pidstat-p pid-u-d-t-w-h 1 1000

The results show:

A fairly practical command that can be based on a process to analyze the corresponding performance data, including Cpu,i/o,ir, CS and so on, can make it easier for developers to observe the operation of the system more refined. However, Pidstat appears to be in some newer versions of the 2.6 kernel and needs to be installed with Sysstat packs.

Ubuntu can be installed through the sudo apt-get install Sysstat.

SAR command

Command: Sar-x PID 1 1000

SAR can also specify the corresponding PID, focus on a few fixed parameters, not as strong as Pidstat. I do not see the corresponding I/O, IR and other information.

The functions of SAR can be covered by mpstat, Iostat and other functions.

Dstat command

Command: dstat-y--tcp 1 1000

Through Dstat--tcp can be more convenient to see the current TCP various states, do not need every time netstat-nat to see

Other commands

NETSTAT-NATP: Check the corresponding network links, pay attention to the next recv-q, Send-q, state.

Lsof-p PID: Find the file handle of the corresponding PID

Lsof-i: 80: Find out which process the corresponding port is occupied by

Lsof/tmp/1.txt: Find out which process the corresponding file is occupied by

Tcpdump/wireshark: Bag Analysis tool

Jstat/jmap/jstack/jps and a series of Java monitoring commands

At last

If you want to do some performance tuning work, you must be good at using some tools to focus on the appropriate state. Through the Linux command you can easily observe the CPU, I/O, network and other relatively peripheral state, many times can already solve most of the problems. Some of the running state monitoring within the JVM requires the use of some unique tools for fine-grained observations.

Related Article

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

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: and provide relevant evidence. A staff member will contact you within 5 working days.