Home  >  Article  >  Operation and Maintenance  >  How to monitor Linux server status

How to monitor Linux server status

步履不停
步履不停Original
2019-06-19 16:12:343410browse

How to monitor Linux server status

We deal with Linux servers every day, especially Linux engineers. In order to ensure the security and performance of the server, we often need to monitor some status of the server to ensure that the work can be carried out smoothly.

The commands introduced in this article are not only suitable for server monitoring, but also for development in our daily situations.

1. watch

The watch command is used very frequently. Its basic function is to repeatedly execute a certain instruction at a specified frequency. Using this command, we can repeatedly call some commands to monitor the server.

By default, the execution period of the watch command is 2 seconds, but we can use the -n option to specify the running frequency. For example, if we want to execute the date command every 5 seconds, we can Execute like this:

$ watch -n 5 date

A server must be used by multiple people, especially friends in this department. We can use some commands to monitor whether these friends are fishing in troubled waters.

We can execute the who command every 10 seconds to see who is using the server.

$ watch -n 10 who
Every 10.0s: who                             butterfly: Tue Jan 23 16:02:03 2019

shs      :0           2019-01-23 09:45 (:0)
dory     pts/0        2019-01-23 15:50 (192.168.0.5)
alvin     pts/1        2019-01-23 16:01 (192.168.0.15)
shark    pts/3        2019-01-23 11:11 (192.168.0.27)

If we find that the system is running very slowly, we can call the uptime command to check the average load of the system.

$ watch uptime
Every 2.0s: uptime                           butterfly: Tue Jan 23 16:25:48 2019

 16:25:48 up 22 days,  4:38,  3 users,  load average: 1.15, 0.89, 1.02

Some key processes must not hang, otherwise it may affect business development, so we can repeatedly count the number of all processes in the server.

$ watch -n 5 'ps -ef | wc -l'
Every 5.0s: ps -ef | wc -l                   butterfly: Tue Jan 23 16:11:54 2019

245

If you want to dynamically know the server memory usage, you can repeatedly execute the free command.

$ watch -n 5 free -m
Every 5.0s: free -m                          butterfly: Tue Jan 23 16:34:09 2019

              total        used        free      shared  buff/cache   available
Mem:           5959         776        3276          12        1906        4878
Swap:          2047           0        2047

Of course it’s not just these, we can also repeatedly call many commands to monitor some key parameters of the server,

2. top

Using the top command we can know Many key parameters of the system are dynamically updated. By default, top monitors the overall status of the system. If we only want to know the usage of a certain person, we can use the -u option to specify this person.

$ top -u alvin
top - 16:14:33 up 2 days,  4:27,  3 users,  load average: 0.00, 0.01, 0.02
Tasks: 199 total,   1 running, 198 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   5959.4 total,   3277.3 free,    776.4 used,   1905.8 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4878.4 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
23026 alvin      20   0   46340   7820   6504 S   0.0   0.1   0:00.05 systemd
23033 alvin      20   0  149660   3140     72 S   0.0   0.1   0:00.00 (sd-pam)
23125 alvin      20   0   63396   5100   4092 S   0.0   0.1   0:00.00 sshd
23128 alvin      20   0   16836   5636   4284 S   0.0   0.1   0:00.03 zsh

In this result, you can not only see the number of all processes run by the user alvin, but also the system resources (CPU, memory) consumed by each process. You can also see to key parameters of the entire system.

3. ac

If you want to know the time it takes for each user to log in to the server, you can use the ac command. This command requires you to install the acct package (Debian) or the psacct package (RHEL, Centos).

If we want to know the sum of the time spent by all users logging into the server, we can run the ac command directly without any parameters.

$ ac
        total     1261.72

If we want to know the time used by each user, we can add the -p option.

$ ac -p
        shark                                5.24
        alvin                                5.52
        shs                               1251.00
        total     1261.76

We can also view the sum of server time used by users each day by adding the -d option.

$ ac -d | tail -10
Jan 11  total        0.05
Jan 12  total        1.36
Jan 13  total       16.39
Jan 15  total       55.33
Jan 16  total       38.02
Jan 17  total       28.51
Jan 19  total       48.66
Jan 20  total        1.37
Jan 22  total       23.48
Today   total        9.83

Summary

We can use many commands to monitor the running status of the system. This article mainly introduces three: watch The command allows you to repeatedly execute a certain command. Monitor changes in some parameters. The top command can view the number of processes running by a user and the resources consumed, while the ac command can view the server time used by each user. Which command do you often use? Welcome to leave a message for discussion!

For more Linux articles, please visit the Linux Tutorial column to learn!

The above is the detailed content of How to monitor Linux server status. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Linux Basics Series 2Next article:Linux Basics Series 2