|
| 1 | +# 常见日常监控 |
| 2 | + |
| 3 | +## 系统查看 |
| 4 | + |
| 5 | +- 查看 CentOS 版本号:`cat /etc/redhat-release` |
| 6 | + |
| 7 | +## CPU 的基本信息查看 |
| 8 | + |
| 9 | +- Demo CPU 型号:[Intel® Xeon® Processor E5-2620 v2(15M Cache, 2.10 GHz)](http://ark.intel.com/products/75789/Intel-Xeon-Processor-E5-2620-v2-15M-Cache-2_10-GHz) |
| 10 | +- 该 CPU 显示的数据中有一项这个要注意:`Intel® Hyper-Threading Technology` 是 `Yes`。表示该 CPU 支持超线程 |
| 11 | +- `cat /proc/cpuinfo`,查看 CPU 总体信息 |
| 12 | +- `grep 'physical id' /proc/cpuinfo | sort -u | wc -l`,查看物理 CPU 个数 |
| 13 | + - 结果:2 |
| 14 | + - 物理 CPU:物理 CPU 也就是机器外面就能看到的一个个 CPU,每个物理 CPU 还带有单独的风扇 |
| 15 | +- `grep 'core id' /proc/cpuinfo | sort -u | wc -l`,查看每个物理 CPU 的核心数量 |
| 16 | + - 结果:6,因为每个物理 CPU 是 6,所有 2 个物理 CPU 的总核心数量应该是:12 |
| 17 | + - 核心数:一个核心就是一个物理线程,英特尔有个超线程技术可以把一个物理线程模拟出两个线程来用,充分发挥 CPU 性能,意思是一个核心可以有多个线程。 |
| 18 | +- `grep 'processor' /proc/cpuinfo | sort -u | wc -l`,查看 CPU 总的线程数,一般也叫做:逻辑 CPU 数量 |
| 19 | + - 结果:24,正常情况下:CPU 的总核心数量 == CPU 线程数,但是如果该 CPU 支持超线程,那结果是:CPU 的总核心数量 X 2 == CPU 线程数 |
| 20 | + - 线程数:线程数是一种逻辑的概念,简单地说,就是模拟出的 CPU 核心数。比如,可以通过一个 CPU 核心数模拟出 2 线程的 CPU,也就是说,这个单核心的 CPU 被模拟成了一个类似双核心 CPU 的功能。 |
| 21 | + |
| 22 | + |
| 23 | +## CPU 监控 |
| 24 | + |
| 25 | +- Linux 的 CPU 简单监控一般简单 |
| 26 | +- 常用命令就是 `top` |
| 27 | + - 命令:`top -bn1`,可以完全显示所有进程出来,但是不能实时展示数据,只能暂时命令当时的数据。 |
| 28 | +- `top` 可以动态显示进程所占的系统资源,每隔 3 秒变一次,占用系统资源最高的进程放最前面。 |
| 29 | +- 在 `top` 命令状态下还可以按数字键 <kbd>1<kbd> 显示各个 CPU 线程使用状态 |
| 30 | +- 在 `top` 命令状态下按 <kbd>shfit</kbd> + <kbd>m</kbd> 可以按照 **内存使用** 大小排序 |
| 31 | +- 在 `top` 命令状态下按 <kbd>shfit</kbd> + <kbd>p</kbd> 可以按照 **CPU 使用** 大小排序 |
| 32 | +- 展示数据上,%CPU 表示进程占用的 CPU 百分比,%MEM 表示进程占用的内存百分比 |
| 33 | + |
| 34 | + |
| 35 | +## 内存监控 |
| 36 | + |
| 37 | +- Linux 的内存本质是虚拟内存,这样说是因为它的内存是:物理内存 + 交换分区。有一个内存模块来管理应用的内存使用。 |
| 38 | +- 如果所以你内存大,可以考虑把 swap 分区改得小点或者直接关掉。 |
| 39 | +- 但是,如果是用的云主机,一般是没交换分区的,`free -g` 中的 Swap 都是 0。 |
| 40 | +- 查看内存使用命令: |
| 41 | + - 以 M 为容量单位展示数据:`free -m` |
| 42 | + - 以 G 为容量单位展示数据:`free -g` |
| 43 | + - CentOS 6 和 CentOS 7 展示出来的数据有差别,CentOS 7 比较容易看,比如下面的数据格式是 CentOS 7 的 `free -g`: |
| 44 | + |
| 45 | +``` |
| 46 | + total used free shared buff/cache available |
| 47 | +Mem: 11 0 10 0 0 10 |
| 48 | +Swap: 5 0 5 |
| 49 | +
|
| 50 | +``` |
| 51 | + |
| 52 | +- 在以上结果中,其中可以用的内存是看 `available` 列。 |
| 53 | + |
| 54 | + |
| 55 | +## 硬盘查看 |
| 56 | + |
| 57 | +- `df -h`:自动以合适的磁盘容量单位查看磁盘大小和使用空间 |
| 58 | +- `df -m`:以磁盘容量单位 M 为数值结果查看磁盘使用情况 |
| 59 | +- `du -sh /opt/tomcat6`:查看tomcat6这个文件夹大小 (h的意思human-readable用人类可读性较好方式显示,系统会自动调节单位,显示合适大小的单位) |
| 60 | +- `du /opt --max-depth=1 -h`:查看指定录入下包括子目录的各个文件大小情况 |
| 61 | + |
| 62 | +## 硬盘 IO 监控 |
| 63 | + |
| 64 | +- 安装 iotop:`yum install -y iotop` |
| 65 | +- 查看命令:`iotop` |
| 66 | +- 使用 dd 命令测量服务器延迟:`dd if=/dev/zero of=/opt/ioTest2.txt bs=512 count=1000 oflag=dsync` |
| 67 | +- 使用 dd 命令来测量服务器的吞吐率(写速度):`dd if=/dev/zero of=/opt/ioTest1.txt bs=1G count=1 oflag=dsync` |
| 68 | + - 该命令创建了一个 10M 大小的文件 ioTest1.txt,其中参数解释: |
| 69 | + - if 代表输入文件。如果不指定 if,默认就会从 stdin 中读取输入。 |
| 70 | + - of 代表输出文件。如果不指定 of,默认就会将 stdout 作为默认输出。 |
| 71 | + - bs 代表字节为单位的块大小。 |
| 72 | + - count 代表被复制的块数。 |
| 73 | + - /dev/zero 是一个字符设备,会不断返回0值字节(\0)。 |
| 74 | + - oflag=dsync:使用同步I/O。不要省略这个选项。这个选项能够帮助你去除 caching 的影响,以便呈现给你精准的结果。 |
| 75 | + - conv=fdatasyn: 这个选项和 oflag=dsync 含义一样。 |
| 76 | + |
| 77 | +- 该命令执行完成后展示的数据: |
| 78 | + |
| 79 | +``` |
| 80 | +[root@youmeek ~]# dd if=/dev/zero of=/opt/ioTest1.txt bs=1G count=1 oflag=dsync |
| 81 | +记录了1+0 的读入 |
| 82 | +记录了1+0 的写出 |
| 83 | +1073741824字节(1.1 GB)已复制,5.43328 秒,198 MB/秒 |
| 84 | +``` |
| 85 | + |
| 86 | +- 利用 hdparm 测试硬盘速度:`yum install -y hdparm` |
| 87 | +- 查看硬盘分区情况:`df -h`,然后根据分区测试: |
| 88 | +- 测试硬盘分区的读取速度:`hdparm -T /dev/sda` |
| 89 | +- 测试硬盘分区缓存的读取速度:`hdparm -t /dev/sda` |
| 90 | +- 也可以以上两个参数一起测试:`hdparm -Tt /dev/sda`,结果数据如下: |
| 91 | + |
| 92 | +``` |
| 93 | +/dev/sda: |
| 94 | +Timing cached reads: 3462 MB in 2.00 seconds = 1731.24 MB/sec |
| 95 | +Timing buffered disk reads: 806 MB in 3.00 seconds = 268.52 MB/sec |
| 96 | +``` |
| 97 | + |
| 98 | + |
| 99 | + |
| 100 | +## 参考资料 |
| 101 | + |
| 102 | +- <http://man.linuxde.net/dd> |
| 103 | +- <https://linux.cn/article-6104-1.html> |
| 104 | + |
| 105 | + |
| 106 | + |
| 107 | + |
| 108 | + |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | + |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | + |
| 118 | + |
| 119 | + |
| 120 | + |
| 121 | + |
| 122 | + |
| 123 | + |
| 124 | + |
| 125 | + |
| 126 | + |
| 127 | + |
| 128 | + |
| 129 | + |
| 130 | + |
| 131 | + |
| 132 | + |
| 133 | + |
| 134 | + |
0 commit comments