服务器的性能监控与分析

[root@iz2zeh1vukq7bno84jwa0tz ~]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 95500 11552 169968 0 0 27 8 5 2 2 2 96 0 0
0 0 0 95500 11552 170000 0 0 0 12 1664 3683 2 2 96 0 0
0 0 0 95500 11552 170000 0 0 0 0 1690 3756 2 1 97 0 0
1 0 0 95500 11552 170000 0 0 0 0 1655 3710 2 1 97 0 0
0 0 0 95500 11552 170000 0 0 0 0 1671 3755 2 2 96 0 0
[root@iz2zeh1vukq7bno84jwa0tz ~]# mpstat 1 5
Linux 3.10.0-1127.19.1.el7.x86_64 (iz2zeh1vukq7bno84jwa0tz) 20230726 _x86_64_ (1 CPU)
210342 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
210343 all 1.01 0.00 2.02 0.00 0.00 0.00 0.00 0.00 0.00 96.97
210344 all 2.02 0.00 1.01 0.00 0.00 0.00 0.00 0.00 0.00 96.97
210345 all 2.02 0.00 2.02 0.00 0.00 0.00 0.00 0.00 0.00 95.96
210346 all 2.02 0.00 2.02 0.00 0.00 0.00 0.00 0.00 0.00 95.96
210347 all 2.02 0.00 1.01 0.00 0.00 0.00 0.00 0.00 0.00 96.97
: all 1.82 0.00 1.62 0.00 0.00 0.00 0.00 0.00 0.00 96.57
# cpucpu
[root@iz2zeh1vukq7bno84jwa0tz ~]# mpstat -P 0 1 5
Linux 3.10.0-1127.19.1.el7.x86_64 (iz2zeh1vukq7bno84jwa0tz) 20230726 _x86_64_ (1 CPU)
210618 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
210619 0 3.96 0.00 2.97 0.00 0.00 0.00 0.00 0.00 0.00 93.07
210620 0 1.02 0.00 1.02 0.00 0.00 0.00 0.00 0.00 0.00 97.96
210621 0 3.00 0.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 95.00
210622 0 1.01 0.00 2.02 0.00 0.00 0.00 0.00 0.00 0.00 96.97
210623 0 2.00 0.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 96.00
: 0 2.21 0.00 2.01 0.00 0.00 0.00 0.00 0.00 0.00 95.78
#
[root@iz2zeh1vukq7bno84jwa0tz ~]# pidstat
Linux 3.10.0-1127.19.1.el7.x86_64 (iz2zeh1vukq7bno84jwa0tz) 20230726 _x86_64_ (1 CPU)
210747 UID PID %usr %system %guest %CPU CPU Command
210747 0 1 0.00 0.00 0.00 0.00 0 systemd
210747 0 2 0.00 0.00 0.00 0.00 0 kthreadd
210747 0 6 0.00 0.01 0.00 0.01 0 ksoftirqd/0
210747 0 9 0.00 0.02 0.00 0.02 0 rcu_sched
210747 0 11 0.00 0.00 0.00 0.00 0 watchdog/0
210747 0 15 0.00 0.00 0.00 0.00 0 khungtaskd
210747 0 30 0.00 0.00 0.00 0.00 0 kswapd0
210747 0 32 0.00 0.00 0.00 0.00 0 khugepaged
210747 0 100 0.00 0.00 0.00 0.00 0 kauditd
210747 0 245 0.00 0.00 0.00 0.00 0 kworker/0:1H
210747 0 257 0.00 0.00 0.00 0.00 0 jbd2/vda1-8
210747 0 336 0.00 0.00 0.00 0.00 0 systemd-journal
210747 0 354 0.00 0.00 0.00 0.00 0 systemd-udevd
210747 0 378 0.00 0.00 0.00 0.00 0 auditd
210747 999 418 0.00 0.00 0.00 0.00 0 polkitd
210747 0 419 0.00 0.00 0.00 0.00 0 CmsGoAgent.linu
210747 0 428 0.00 0.00 0.00 0.00 0 systemd-logind
210747 81 431 0.00 0.00 0.00 0.00 0 dbus-daemon
210747 38 449 0.00 0.00 0.00 0.00 0 ntpd
# 13cpu使
[root@iz2zeh1vukq7bno84jwa0tz ~]# pidstat 1 3
Linux 3.10.0-1127.19.1.el7.x86_64 (iz2zeh1vukq7bno84jwa0tz) 20230726 _x86_64_ (1 CPU)
210916 UID PID %usr %system %guest %CPU CPU Command
210917 0 785 0.99 0.00 0.00 0.99 0 python3
210917 0 7857 0.99 0.00 0.00 0.99 0 java
210917 0 16937 0.99 0.99 0.00 1.98 0 AliYunDunMonito
210917 UID PID %usr %system %guest %CPU CPU Command
210918 0 651 1.03 1.03 0.00 2.06 0 python3
210918 0 5801 0.00 1.03 0.00 1.03 0 pidstat
210918 0 16927 0.00 1.03 0.00 1.03 0 AliYunDun
210918 UID PID %usr %system %guest %CPU CPU Command
210919 0 651 1.01 1.01 0.00 2.02 0 python3
210919 0 7857 0.00 1.01 0.00 1.01 0 java
210919 0 16927 1.01 0.00 0.00 1.01 0 AliYunDun
210919 0 16937 1.01 1.01 0.00 2.02 0 AliYunDunMonito
: UID PID %usr %system %guest %CPU CPU Command
: 0 651 0.67 0.67 0.00 1.35 - python3
: 0 785 0.34 0.00 0.00 0.34 - python3
: 0 5801 0.00 0.34 0.00 0.34 - pidstat
: 0 7857 0.34 0.34 0.00 0.67 - java
: 0 16927 0.34 0.34 0.00 0.67 - AliYunDun
: 0 16937 0.67 0.67 0.00 1.35 - AliYunDunMonito
# I/O使
[root@iz2zeh1vukq7bno84jwa0tz ~]# pidstat -d
Linux 3.10.0-1127.19.1.el7.x86_64 (iz2zeh1vukq7bno84jwa0tz) 20230726 _x86_64_ (1 CPU)
211149 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
211149 0 1 11.46 1.71 0.13 systemd
211149 0 30 0.00 0.06 0.00 kswapd0
211149 0 257 0.00 1.30 0.00 jbd2/vda1-8
211149 0 336 1.01 0.49 0.00 systemd-journal
211149 0 354 0.01 0.00 0.00 systemd-udevd
211149 0 378 0.00 0.02 0.00 auditd
211149 999 418 0.04 0.00 0.00 polkitd
# pidstat pidstat --help
pidstat -p 使
pidstat -r 使
# gunicorn
[root@iz2zeh1vukq7bno84jwa0tz static]# lsof -c gunicorn
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
gunicorn 9501 root cwd DIR 0,49 4096 1322034 /code/donkey
gunicorn 9501 root rtd DIR 0,49 4096 1707072 /
356673 922239 /var/data/log/DailyLog
gunicorn 9547 root 14u REG 253,1 1
#
lsof -p pid # id
lsof -i:80 # 80
# 使
[root@iz2zeh1vukq7bno84jwa0tz ~]# free
total used free shared buff/cache available
Mem: 1881768 1617444 86760 760 177564 112380
Swap: 0 0 0
# top
top - 13:38:29 up 90 days, 22:38, 1 user, load average: 0.02, 0.04, 0.09
Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.3 us, 2.0 sy, 0.0 ni, 96.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1881768 total, 98880 free, 1618164 used, 164724 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 111484 avail Mem
Unknown command - try 'h' for help
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10733 root 20 0 51800 36328 1284 S 1.7 1.9 13:32.77 python3
16937 root 10 -10 135656 9172 1760 S 0.7 0.5 274:39.84 AliYunDunMonito
7857 root 20 0 2720332 339764 0 S 0.3 18.1 169:34.69 java
10866 root 20 0 54644 39484 2788 S 0.3 2.1 1:41.08 python3
16927 root 10 -10 108928 13072 3368 S 0.3 0.7 76:34.72 AliYunDun
1 root 20 0 191064 2680 1184 S 0.0 0.1 3:58.49 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 16:15.93 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
# 使iftop
12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb└────────────────────────────────────────────────────┴────────────────────────────────────────────────────┴─────────────────────────────────────────────────────┴────────────────────────────────────────────────────┴─────────────────────────────────────────────────────iz2zeh1vukq7bno84jwa0tz => ecs-119-3-116-109.compute.hwclouds-dns.com 0b 3.22Kb 3.22Kb
<= 0b 10.3Kb 10.3Kb
iz2zeh1vukq7bno84jwa0tz => 100.100.33.28 0b 10.4Kb 10.4Kb
<= 0b 533b 533b
iz2zeh1vukq7bno84jwa0tz => 118.113.77.134 3.61Kb 4.34Kb 4.34Kb
<= 368b 470b 470b
iz2zeh1vukq7bno84jwa0tz => 100.100.30.25 0b 1.81Kb 1.81Kb
<= 0b 46b 46b
iz2zeh1vukq7bno84jwa0tz => 100.100.2.136 280b 406b 406b
<= 500b 894b 894b
iz2zeh1vukq7bno84jwa0tz => 100.100.2.138 0b 443b 443b
<= 0b 790b 790b
iz2zeh1vukq7bno84jwa0tz => 100.100.3.3 304b 76b 76b
<= 304b 76b 76b
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────TX: cum: 20.6KB peak: 53.6Kb rates: 4.18Kb 20.6Kb 20.6Kb
RX: 13.0KB 28.0Kb 1.14Kb 13.0Kb 13.0Kb
TOTAL: 33.7KB 81.5Kb 5.32Kb 33.7Kb 33.7Kb

nmon 是linux免费的性能监控工具

# linux cpulscpu
[root@iz2zeh1vukq7bno84jwa0tz ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
1
NUMA 1
ID GenuineIntel
CPU 6
85
Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz
7
CPU MHz 2499.998
BogoMIPS 4999.99
KVM
L1d 32K
L1i 32K
L2 1024K
L3 36608K
NUMA 0 CPU 0
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512_vnni

apache 工作模式

<IfModule mpm_prefork_module>
StartServers 8
MinSpareServers 8
MaxSpareServers 10
MaxRequestWorkers 512
MaxConnectionsPerChild 1000
</ IfModule>

worker模式:多进程多线程的混合模式来处理请求,需考虑线程安全问题

<IfModule mpm_worker_module>
StartServers 4
ServerLimit 20
MinSpareThreads 65
MaxSpareThreads 256
ThreadPerChild 30
MaxRequestWorkers 410
MaxConnectionsPerChild 1200
</ IfModule>

event模式:与worker模式类似,是对worler模式的升级改进。有专门的线程承担管理和分配线程的工作,比如对keep-live长连接工作线程的管理。

<IfModule mpm_event_module>
StartServers 4
ServerLimit 20
MinSpareThreads 65
MaxSpareThreads 256
ThreadPerChild 30
MaxRequestWorkers 410
MaxConnectionsPerChild 1200
</ IfModule>

apache 自带性能测试工具ab

如:ab -n 10000 -c 60 -k http://127.0.0.1:80/ ,表示总共发送10000次压测请求,并发连接数为60,并且在压测时客户端开启KeepAlive。

jvm 性能监控工具集

远程连接时,需开启jmx参考链接

nohup java -jar -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=123.57.138.224 case-server-1.0-SNAPSHOT.jar >/dev/null 2>&1 &

mysql数据库性能监控