linux基本功系列之uptime命令实战

简介: linux基本功系列之uptime命令实战

在这里插入图片描述

@[toc]

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. uptime命令介绍

Linux系统中的uptime命令主要用于获取主机运行时间和查询Linux系统负载等信息。

uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。 uptime命令用法十分简单,直接输入uptime即可查看系统负载情况。

二. 语法格式及常用选项

使用帮助命令查看具体的参数和语法格式:
uptime --help

[root@mufenggrow ~]# uptime --help

Usage:
 uptime [options]

Options:
 -p, --pretty   show uptime in pretty format
 -h, --help     display this help and exit
 -s, --since    system up since
 -V, --version  output version information and exit

For more details see uptime(1).

可以看到,uptime后面可以直接跟选项。

参数 描述
-p 采用可读友好的格式输出系统已运行时长
-h --help 显示帮助信息
-s --since 以格式 yyyy-mm-dd HHSS format 输出系统启动时间
-V --version 显示版本信息

三. 参考案例

3.1 显示当前系统运行负载情况

不加任何参数直接执行uptime,如下:

[root@mufenggrow ~]# uptime
 22:53:55 up  3:05,  3 users,  load average: 0.00, 0.02, 0.05

以上列出的参数解释:

参数 描述
22:53:55 当前系统的时间
up 3:05 系统已经运行了3个小时零5分
3users 当前登录用户数
load average: 0.00, 0.02, 0.05 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

经验:单核心,1分钟的系统平均负载不要超过3

基于以上经验:

如果服务器的CPU为1核心,则load average中的数字 >=3 负载过高,如果服务器的CPU为4核心,则load average中的数字 >=12 负载过高。

3.2 显示机器正常运行的时间

此处只显示机器的正常运行时间,所以需要用到-参数

[root@mufenggrow ~]# uptime -p
up 3 hours, 12 minutes

可以看到显示的时间为3小时12分钟,这是系统运行时间,一般等于你开机的时间,比如:

[root@master-21 ~]# uptime -p
up 7 hours, 43 minutes

3.3 显示机器启动时间

我们知道系统运行的时间之后,想知道是从哪个时间点运行的,就可以使用-s参数

[root@mufenggrow ~]# uptime -s
2023-01-31 19:48:26

可以看到-s显示的是具体的系统启动运行时间。

3.4 关于平均负载的介绍

平均负载:

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和CPU使用率并没有直接关系。

  • 可运行状态:是指正在使用CPU或者正在等待CPU的进程,也就是ps命令看到的处于R状态的进程
  • 不可中断状态:是指正在处于内核态关键流程中的进程,并且这些进程是不可打断的,比如常见的等待硬件设备的IO操作,也就是ps命令看到的处于D状态的进程

不可中断状态是系统对进程和硬件设备的一种保护机制

说通俗点,平均负载其实就是平均活跃进程数。最理想的平均活跃进程数就是每个CPU上都刚好运行着一个进程,这样每个CPU都得到了充分的利用。

当一个进程向磁盘读写数据时,为了保证数据的一致性,在得到磁盘回复前,它是不能被其他进程或者中断打断的,这个时候的进程就处于不可中断状态。如果此时的进程被打断了,就容易出现磁盘数据与进程数据不一致的问题

除了使用uptime,我们用 cat /proc/loadavg命令也可以查看平均负载:

[root@mufenggrow ~]# cat /proc/loadavg
0.00 0.01 0.05 1/514 14655

前三个数字与uptime一致,后面的:
1/514 表示正在运行的进程数有一个,分母是总进程数
14655 表示正在运行的进程ID为 14655

关于cpu我们之前介绍过一些概念:

CPU个数:即物理CPU数,主板实际插入的CPU数量,可以数不重复的 physical id 有几个(physical id)
CPU核数:单块CPU上面能处理数据的芯片组的数量,如双核,四核等(cpu cores)

逻辑CPU数:一般情况下,逻辑CPU=物理CPU个数x每颗核数。如果不等,表示CPU支持超线程技术

平均负载和cpu个数有一定的关系 比如平均负载为4时意味着什么呢?

多核cpu和多个cpu效果类似

# cat /proc/cpuinfo     #查看CPU的信息
# grep -c ‘model name’ /proc/cpuinfo  #返回CPU的总核心数
  • 在只有4个CPU的系统上,意味着所有的CPU都刚好被完全占用。
  • 在8个CPU的系统上,意味着CPU有50%的空闲。
  • 而在有2个CPU系统上,意味着有一半的进程竞争不到CPU。

其他经验:

如果1分钟,5分钟,15分钟的三个值基本相同,或者相差不大,那就说明系统负载很平稳。

如果1分钟的值远小于15分钟的值,就是说在15分钟之前负载很高,到了1分钟的时候已经下降很多了,甚至负载已经不高了,这时候只需要关注下为什么在15分钟高就行了,不需要介入处理。。

但如果1分钟的值远大于15分钟的值,说明近1分钟负载在增加,这种情况可能是临时性的,也可能还会持续,要持续观察,一旦1分钟的平均负载超过了CPU的数量,意味着系统正在发生过载的问题。

例如:一个单核系统上,平均负载为1.78,0.60,6.56,说明1分钟内,系统有78%的超载,而在15分钟内有556%的超载。

实际生产中,平均负载多高时需要关注

当系统负载持续大于0.7,就要开始排查了,防止情况恶化;
当系统负载持续大于1.0,你就必须手动寻找解决办法,把这个值降下来;
当系统负载达到5.0,就表明你的系统有很严重的问题,长时间没有响应,或者接近死机了,一般不允许让系统达到这个值

常用的性能排查工具

  • stress:Linux 系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。
  • mpstat:是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有CPU的平均指标。
  • pidstat:是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标。

总结

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

相关文章
|
21天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
50 14
Linux 10 个“who”命令示例
|
1天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
20 8
|
10天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
89 20
|
11天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
35 7
|
1月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
34 9
|
29天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
1月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
135 3
|
7月前
|
Linux Shell
linux中uptime命令查看linux系统负载
linux中uptime命令查看linux系统负载
143 0
|
1月前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
60 3
|
7月前
|
监控 Unix Linux
Linux系统之uptime命令的基本使用
Linux系统之uptime命令的基本使用
121 1
Linux系统之uptime命令的基本使用