Linux vmstat Command Real-combat detailed

Source: Internet
Author: User

The Vmstat command is the most common Linux/unix monitoring tool that can show the status of a server at a given time interval, including server CPU utilization, memory usage, virtual memory exchange, IO Read and write situations. This command is I see Linux/unix favorite commands, one is Linux/unix support, two is compared to top, I can see the whole machine CPU, memory, IO usage, rather than just see the CPU usage and memory utilization of each process (using the scene is not the same).

The use of the general Vmstat tool is done by two numeric parameters, the first parameter is the number of time intervals sampled, the unit is seconds, the second parameter is the number of samples, such as:

[Email protected]:~# vmstat21 procs-----------Memory-------------Swap-------io-----system------CPU----r b swpd free buff cache si s o bi boIn CS US sy ID WA100349847231583638195400001 2 0 0 0  0      

2 indicates that the server state is collected every two seconds, and 1 means that it is collected only once.

In fact, in the application process, we will be monitoring for a period of time, do not want to monitor the direct end of Vmstat, such as:

[Email protected]:~# vmstat2 procs-----------Memory-------------Swap-------io-----system------CPU----r b swpd free buff cache si So bi boIn CS US sy ID WA100349984031583638196600001200010000003499584315836381966000008815800100000034997083158363819660000286162001000000349970831583638196600001081151001000100349973231583638196600002 83 154 0 0 100 0       

This means that Vmstat collects data every 2 seconds and collects it until I have finished the program, and I have collected 5 data and I have finished the program.

Well, the command is complete, now the actual combat to explain the meaning of each parameter.

R indicates the running queue (that is, how many processes are really allocated to the CPU), I test the server is currently idle CPU, there is no program running, when this value exceeds the number of CPUs, there will be a CPU bottleneck. This is also related to top of the load, the general load over 3 is relatively high, more than 5 is high, more than 10 is not normal, the state of the server is very dangerous. The load on top is similar to the run queue per second. If the running queue is too large, it means that your CPU is busy, which generally results in high CPU usage.

b That means blocking the process, which is not much to say, the process is blocked, you know.

SWPD The size of virtual memory used, if greater than 0, indicates that your machine is out of physical memory, if not the cause of program memory leaks, then you should upgrade the memory or the memory-consuming task to other machines.

Free The size of the free physical memory, my machine memory total 8G, the remaining 3415M.

Buff Linux/unix system is used to store, directory inside what content, permissions, etc. of the cache, I machine about more than 300 m

Cache The cache is used directly to memorize the files we open, to buffer the files, I have about 300 m of this machine (this is the smart place of Linux/unix, the free physical memory of a part of the cache of files and directories to improve the performance of the program execution, when the program uses memory, Buffer/cached will be used very quickly. )

si The size of the virtual memory read from disk per second, if the value is greater than 0, indicates that the physical memory is insufficient or the memory is compromised, to find out the memory-consuming process. My machine has plenty of memory and everything is fine.

So The virtual memory per second is written to the disk size, if this value is greater than 0, ibid.

Bi Block device receives the number of blocks per second, where the block device refers to all the disk and other block devices on the system, the default block size is 1024byte, I have no IO operation on this machine, so has been 0, but I have been processing copies of a large number of data (2-3T) on the machine can be achieved 140000/s , disk write speed of almost 140M per second

The number of blocks that Bo block devices send per second, such as when we read a file, the Bo will be greater than 0. Bi and Bo are generally close to 0, otherwise the IO is too frequent and needs to be adjusted.

in CPU interrupts per second, including time interrupts

CS The number of context switches per second, for example, we call the system function, the context switch, the thread switch, but also the process context switch, the smaller the better, too big, to consider the number of threads or processes, such as in Apache and Nginx Web server, We generally do performance testing will carry out thousands of concurrent or even tens of thousands of concurrent tests, the selection of the Web server process can be the process or the peak of the thread has been down, pressure measurement, until CS to a relatively small value, the process and the number of threads is a more appropriate value. System calls are also, each time the system function is called, our code will enter the kernel space, resulting in context switching, this is very resource-intensive, but also try to avoid frequent calls to system functions. Too many context switches means that most of your CPU is wasted in context switching, resulting in less time for the CPU to do serious work, and the CPU not being fully utilized, is undesirable.

US User CPU time, I used to do encryption and decryption very frequently on the server, you can see us approaching 100,r running queue reached 80 (the machine is doing a stress test, poor performance).

Sy System CPU time, if too high, indicates a long system call, such as frequent IO operations.

ID Idle CPU time, in general, ID + US + sy = 100, generally I think ID is idle CPU usage, US is the user CPU usage, SY is the system CPU utilization.

WT wait for IO CPU time.

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.