Linux 系统负载常用查看命令介绍


前言

本文以 MySQL 数据库为例 处理自建数据库问题时,我们需要了解更多的系统信息,如果没有监控,则需要我们使用 Linux 命令得到这些数据,本文介绍如何获得这些信息,和 Python 监控脚本设计思路。

一、硬件规格

1. CPU

关于 CPU 详细信息,可以使用下方 Linux 命令获取:

lscpu

在这里插入图片描述

2. 磁盘

使用 df 命令能够列出不同分区的概要信息、挂载点、已用的和可用的空间。

df -Th

在这里插入图片描述

3. 内存

使用 free 命令可以了解到系统的内存使用情况,如果是专用的数据库服务器,没有其它应用在跑的话 MySQL 内存使用波动不会太大,根据 innodb_buffer_pool_size 来设定。

free -h

在这里插入图片描述

二、系统负载

1. top

使用top命令可以查看正在运行的系统中的动态实时视图信息,显示系统摘要信息, 以及Linux内核当前正在管理的任务列表。其支持静态输出,也支持交互式输出,还可以 在启动之前读取响应的配置文件来决定如何显示进程的状态信息。

下面我们演示一下:
在这里插入图片描述
输出结果解读:
在这里插入图片描述

  • 0.0 us 用户程序工作所占用的 CPU 时间片占比,可以理解为 CPU 工作占比;
  • 0.3 sy 内核占用的 CPU 时间片占比,可以理解为系统调度资源使用 CPU 占比;
  • 99.7 id 空闲 CPU 时间片占比,可以理解为空闲的 CPU 占比;
  • 0.0 wa CPU 用来等待时间片占比,一般等待 IO 或者锁问题;

进程列表输出解读:
在这里插入图片描述
我们此时在进程列表可以看到 mysqld 进程 CPU 使用率为 155% 因为这台测试机器是双核心所以 CPU 使用率最高为 200% (如果想看每个核心的使用率按 1 就可以在最上面显示)

2. glances

glances 是一个基于 python 语言开发,可以为 linux 或者 UNIX 性能提供监视和分析性能数据的功能。glances 在用户的终端上显示重要的系统信息,并动态的进行更新,让管理员实时掌握系统资源的使用情况,而动态监控并不会消耗大量的系统资源,比如 CPU 资源,通常消耗小于2%,glances 默认每两秒更新一次数据。同时 glances 还可以将相同的数据捕获到一个文件,便于以后对报告进行分析和图形绘制,支持的文件格式有 .csv 电子表格格式和 html 格式。

glances 可以分析系统的:

  • CPU使用率
  • 内存使用率
  • 内核统计信息和运行队列信息
  • 磁盘I/O速度、传输和读/写比率
  • 磁盘适配器
  • 网络I/O速度、传输和读/写比率
  • 页面监控
  • 进程监控-消耗资源最多的进程
  • 计算机信息和系统资源

下面是使用 glances 监控的效果:

在这里插入图片描述
安装方法:

yum install -y  glances

功能介绍

个人认为 glances 比较特别的功能是 C/S 模式,被监控机运行服务端,监控端运行客户端既可以实现远程监控。

服务端:

shell>glances -s -B 172.16.104.55 &
Glances server is running on 172.16.104.55:61209

客户端:

glances -c 172.16.104.55

此时就可以在另外一台服务器监控到服务端的负载情况。

强烈建议数据库服务器,没有配置监控的话,可以安装一下 glances 系统负载情况尽收眼底。

三、数据库监控脚本

下面介绍一下数据库监控脚本的设计思路,主要分成数据采集和可视化。

系统数据采集:

Python 语言中有一个开源模块 psutil 通过它可以获得系统的信息:
在这里插入图片描述
如上图所示,可以非常简单的获取到服务器内存使用情况。那么使用 psutil 就可以帮助我们采集到服务器资源使用情况,比如:CPU 使用率、内存使用率、IO 使用情况、磁盘使用率、网络使用情况。

数据库信息采集:

关于数据库这部分信息,主要有 QPS/TPS 这些数据是可以从 MySQL 状态变量中得到:

show global status 
where 
  Variable_name in (
    'Com_commit', 'Com_delete', 'Com_insert', 
    'Com_rollback', 'Com_select', 'Com_update', 
    'Threads_connected', 'Open_tables', 
    'Slow_queries', 'Innodb_buffer_pool_read_requests', 
    'Innodb_buffer_pool_read_ahead', 
    'Innodb_buffer_pool_reads', 'Aborted_clients', 
    'Aborted_connects'
  );

在这里插入图片描述

数据可视化:

目前我的想法是使用 echarts 进行可视化,有一些模版也是非常的哇塞。
在这里插入图片描述
上图是我使用 echarts 简单实现的 CPU & 内存使用情况的监控图,可以自己调整显示日期。

未完待续…

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值