作为一个前端开发人员,我们经常需要在 Linux 环境下进行开发和部署。而服务器性能的优化对于网站的用户体验和服务稳定性都有着至关重要的作用。本文将详细介绍 Linux 服务器性能优化必备的工具及其应用方法。
1. top
top 是 Linux 中一款非常实用的运行时监测工具,它可以用来查看服务器的 CPU、内存、磁盘 I/O 等资源占用情况,以及当前进程的状态和 CPU 内存使用情况。使用 top 命令来查看当前系统性能情况,即可通过 "C" 来把进程按 CPU 占用率从高到低排序,又可以按照进程内存占用率或者其他指标排序。如下示例:
top - 17:46:10 up 4 days, 21:30, 1 user, load average: 0.02, 0.03, 0.00 Tasks: 151 total, 2 running, 149 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.3 us, 0.3 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8004240 total, 990444 free, 4951916 used, 2065880 buff/cache KiB Swap: 9764860 total, 9668564 free, 96296 used. 2322388 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4503 root 20 0 260492 22648 15448 S 5.0 0.3 5:08.36 lxcfs 4265 root 20 0 103312 12296 9384 S 2.0 0.2 4:29.65 systemd-journal 7 root 20 0 0 0 0 S 0.3 0.0 167:36.27 rcu_sched 1 root 20 0 118400 6148 4276 S 0.0 0.1 0:15.94 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
2. iostat
iostat 可以用来监测磁盘 I/O 操作。使用 iostat 指令来查看磁盘的读写情况,主要关注的是最后一行的 iops(i/o 操作数),以及 avgrq-sz(平均请求的大小),通过这两个指标可以判断磁盘瓶颈是否达到了极限,是否需要增加磁盘或者进行优化。如下示例:
iostat -d -k -x | sed -rn '/^Device|^sda/p'
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd sda 0.27 3.28 0.53 0.00 256880810 41856505 0
3. vmstat
vmstat 命令可以用来监测系统内存和交换区的使用情况以及 CPU 的使用情况。它能够提供更加详细的信息,如内存中活跃进程数量、内存缓存情况等等。vmstat 可以通过以下命令来使用:
vmstat 3
上述命令用于每隔 3 秒钟监测一次系统性能状况。vmstat 的输出结果包含了很多指标,如 procs(进程数量)、memory(内存占用情况)、swap、io、cpu(CPU 占用情况)等等。如下示例:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 9247772 239888 7366668 0 0 471 48 495 1189 1 0 99 0 0 1 0 0 9245692 239888 7367520 0 0 0 0 11284 4243 1 1 98 0 0 1 0 0 9256324 239888 7355592 0 0 0 0 11691 4142 1 1 98 0 0 0 0 0 9256276 239888 7355644 0 0 0 0 12134 4428 2 1 97 0 0
4. dstat
dstat 是一个多功能系统性能信息工具,能够用于实时监测 CPU 使用率、磁盘 I/O、内存使用等信息,并可以生成报告或直接以 CSV 格式输出。如下命令即可使用:
dstat -c --top-cpu --top-bio --top-latency --top-mem
上述命令用于同时查看 CPU 使用率、磁盘 I/O、内存使用,并在输出最高 CPU 使用率的进程、磁盘(块输入/输出)、以及内存使用最高的进程。如下示例:
----total-cpu-usage---- -most-expensive- -block- I/O -latency- ----memory-usage---- usr sys idl wai hiq siq| process | read writ| read writ| used buff cach free 3 1 96 0 0 1| php-fpm7.0 | 0 0 | 12ms 0us | 17G 5931M 86M 161M 0 0 99 0 0 1| php-fpm7.0 | 0 0 | 112ms 0us | 17G 5964M 86M 148M 0 0 100 0 0 0|ksoftirqd/3 | 0 0 | 0us 0us | 17G 5964M 86M 611M 0 0 100 0 0 0|kworker/u256:0 | 0 0 | 0us 0us | 17G 5964M 86M 156M 0 0 100 0 0 0| migration/0 | 0 0 | 0us 0us | 17G 5965M 86M 323M 0 0 100 0 0 0| kworker/0:2 | 0 0 | 0us 0us | 17G 5965M 86M 310M 0 0 100 0 0 0| [rcu_sched]| 0 0 | 0us 0us | 17G 5965M 86M 297M 0 0 100 0 0 0| ksoftirqd/0 | 0 0 | 0us 0us | 17G 5965M 86M 320M 0 1 99 0 0 0| php-fpm7.0 | 0 0 | 0us 1711us | 17G 5974M 86M 120M 1 1 97 0 0 0| php-fpm7.0 | 0 256K| 0us 0us | 17G 5980M 86M 130M
总结
通过使用 top、iost
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65a7cfa7add4f0e0ff0f3997