- Linux 基础入门(新版)
- C 语言实现 Linux Shell 命令解释器
- C 语言实现 Linux touch 命令
- C 语言实现多线程排序
- 多线程生产者消费者模型仿真停车场
- 在 Github Pages 上部署自己的简历
- Linux 系统安装及配置邮件服务器
- Shell 脚本实现 Linux 系统监控
- C 语言实现 Linux 网络嗅探器
- Vim 编辑器
- Ansible 基础教程
- C 语言实现聊天室软件
- Linux 防火墙技术
- Linux 系统搭建及配置 DNS 服务器
- Linux 系统监控实战
- 操作系统原理与实践
- 实验环境的工作模式
- 使用方法
- Linux 系统安装配置版本控制服务器
- LAMP 部署及配置
- Linux 内核分析
- 正则表达式基础
- TCP/IP 网络协议基础
- Linux Web 运维(Nginx)实战
- Linux 命令实例练习
- 高级 Bash 脚本编程指南
- Memcache 基础教程
- 操作系统实验-基于 uCore OS
- Linux 系统编程
第 1 节 LINUX 系统监控常用命令(一)
实验简介:系统监控的重要性
我们的系统一旦上线跑起来我们自然希望它一直相安无事,不要宕机,不要无响应,不要慢腾腾的。但是这不是打开机器电源然后放任不管就可以得到的。所以我们要监视系统的运行状况,发现问题及时处理。 对于系统和网络管理员来说每天监控和调试 Linux 系统的性能问题是一项繁重的工作。监控和保持系统启动并运行是很不容易的一件事。接下来介绍部分 linux 的系统监控命令。
常用系统监控命令介绍
(1)Linux 进程监控:TOP
Linux 下的 Top 命令是一个性能监控程序,许多系统管理员常常用它来监控 Linux 性能,在许多 Linux 或者类 Unix 操作系统里都有这个命令。Top 命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。这条命令显示了 CPU 的使用率、内存使用率、交换内存使用大小、高速缓存使用大小、缓冲区使用大小,进程 PID、所使用命令以及其他。它还可以显示正在运行进程的内存和 CPU 占用多的情况。
$ top
操作截图:
在图中依次可以看到进程 PID,进程用户,CPU 使用率,内存使用率、交换内存使用大小等等信息。top 命令提供了实时的对系统处理器的状态监视.它将显示系统中 CPU 最“敏感”的任务列表。
通过 man top 可以查看到详细的 top 命令使用方式。
$ man top
操作截图:
(2)虚拟内存统计 : vmstat
Linux 的 VmStat 命令用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 块、中断、CPU 活动 等的统计信息。
一般 vmstat 工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,
$ vmstat 2 1
$ vmstat 2 2
操作截图:
如果要求 vmstat 每 2 秒采集数据,一直采集,直到结束程序(Ctrl+c)。则省略采集次数:
$ vmstat 2
测试参数讲解:
r :表示运行队列,如果运行队列过大,表示你的 CPU 很繁忙,一般会造成 CPU 使用率很高
b :表示阻塞的进程数
swpd :虚拟内存已使用的大小,如果大于 0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器
free :空闲的物理内存的大小
buff : 系统占用的缓存大小
cache :直接用来记忆我们打开的文件,给文件做缓冲
si :每秒从磁盘读入虚拟内存的大小,如果这个值大于 0,表示物理内存不够用或者内存泄露了
us :用户 CPU 时间
sy :系统 CPU 时间
so : 每秒虚拟内存写入磁盘的大小,如果这个值大于 0,同上。
sy : 系统 CPU 时间,如果太高,表示系统调用时间长,例如是 IO 操作频繁。
id : 空闲 CPU 时间,一般来说,id + us + sy = 100
wt : 等待 IO CPU 时间。
(3)列出打开的文件:lsof
它常用于以列表的形式显示所有打开的文件和进程。打开的文件包括磁盘文件、网络套接字、管道、设备和进程。使用这条命令的主要情形之一就是在无法挂载磁盘和显示正在使用或者打开某个文件的错误信息的时候。使用这条命令,你可以很容易地看到正在使用哪个文件。
$ lsof
操作截图:
此命令运行的结果较长,截图部分。
(4)网络包分析器:tcpdump
Tcpdump 是最广泛使用的网络包分析器或者包监控程序之一,它用于捕捉或者过滤网络上指定接口上接收或者传输的 TCP/IP 包。它还有一个选项用于把捕捉到的包保存到文件里,以便以后进行分析。 -h:查看命令帮助
-i:网络接口
-c :需要输出包数量
$ sudo apt-get update
$ sudo apt-get install tcpdump
$ tcpdump -h
$ sudo tcpdump -i eth0 -c 3
操作截图:
(5)网络状态统计:netstat
Netstat 是一个用于监控进出网络的包和网络接口统计的命令行工具。它是一个非常有用的工具,系统管理员可以用来监控网络性能,定位并解决网络相关问题。 -h: 查看帮助 -r: -i:查看网络接口
$ netstat -h
$ netstat -r
$ netstat -i
操作截图:
(6)进程监控:Htop
Htop 是一个非常高级的交互式的实时 linux 进程监控工具。 它和 top 命令十分相似,但是它具有更丰富的特性,例如用户可以友好地管理进程,快捷键,垂直和水平方式显示进程等等。 Htop 是一个第三方工具,它不包含在 linux 系统中,你需要使用管理工具去安装它。
$ sudo apt-get install htop
$ htop
(7)监控 Linux 磁盘 I/O :iotop
iotop 命令同样也非常类似于 top 命令和 Htop 程序,不过它具有监控并显示实时磁盘 I/O 和进程的统计功能。在查找具体进程和大量使用磁盘读写进程的时候,这个工具就非常有用。 这个命令只有在 kernelv2.6.20 及以后的版本中才有。python 版本需要 python2.7 及以上版本。由于系统原因,实验环境并不支持此命令。此处仅做介绍。
(8)输入/输出统计:iostat
iostat 是一个用于收集显示系统存储设备输入和输出状态统计的简单工具。这个工具常常用来追踪存储设备的性能问题,其中存储设备包括设备、本地磁盘,以及诸如使用 NFS 等的远端磁盘。
$ sudo apt-get install sysstat
$ iostat
操作截图:
各项含义: avg-cpu 段:
%user: 在用户级别运行所使用的 CPU 的百分比.
%nice:优先进程消耗的 CPU 时间,占所有 CPU 的百分比.
%system: 在系统级别(kernel) 运行所使用 CPU 的百分比.
%iowait: CPU 等待硬件 I/O 时,所占用 CPU 百分比.
%steal: 管理程序维护另一个虚拟处理器时,虚拟 CPU 的无意识等待时间百分比.
%idle: CPU 空闲时间的百分比.
Device 段:
tps: 每秒钟发送到的 I/O 请求数.
KB_read /s: 每秒读取的 block 数.
KB_wrtn/s: 每秒写入的 block 数.
KB_read: 启动到现在 读入的 block 总数.
KB_wrtn: 启动到现在写入的 block 总数.
查看帮助:
$ man iostat
(9)实时局域网 IP 监控:IPTraf
IPTraf 是一个在 Linux 控制台运行的、开放源代码的实时网络(局域网)监控应用。它采集了大量信息,比如通过网络的 IP 流量监控,包括 TCP 标记、ICMP 详细信息、TCP/UDP 流量分离、TCP 连接包和字节数。同时还采集有关接口状态的常见信息和详细信息:TCP、UDP、IP、ICMP、非 IP,IP 校验和错误,接口活动等。
$ sudo apt-get install iptraf
$ sudo iptraf
操作截图( 注意图片中下面的提示操作信息。 ):
查看命令帮助信息,根据需要选择合适的参数,进行监控。此处便不再赘述命令参数:
$ sudo iptraf -h
参考文档:
1.http://www.bitscn.com/os/linux/201405/199059.html
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论