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

article/2025/9/6 23:03:17

在这里插入图片描述

文章目录

  • 一. uptime命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 显示当前系统运行负载情况
    • 3.2 显示机器正常运行的时间
    • 3.3 显示机器启动时间
    • 3.4 关于平均负载的介绍
  • 总结

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

一. uptime命令介绍

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

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

二. 语法格式及常用选项

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

[root@mufenggrow ~]# uptime --helpUsage: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 exitFor more details see uptime(1).

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

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

三. 参考案例

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

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

[root@mufenggrow ~]# uptime22: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 以及上下文切换等性能指标。

总结

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

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


http://chatgpt.dhexx.cn/article/yccHlGH5.shtml

相关文章

如何快速学习android开发的(一)

因为项目需要,8月中旬开始决定做安卓的程序,所以马上就开始学习安卓方面的开发知识,把最近的学习实践经历和大家分享分享。不要一开始就下载一大堆资料,视频,然后就不知道做什么了,要给自己定个目标&#x…

安卓学习之

表格布局包含一系列的 TableRow对象,用于定义行(实际上你也可以使用其它子对象,将在后面进行解释)。表格布局不为它的行、列和单元格显示表格线。每个行可以包含0个以上(包括0)的单元格; 每个单…

通过安卓逆向来学习安卓开发

记一次逆向学习的过程 起因:最近在做bilibili缓存视频合并工具,适配Android 11时需要获取Android/data目录的读取权限,根据APP“清浊”开发者的帖子: 如何评价在Android11中,/Android/data文件夹无法读写?…

初学安卓framework系列 一 (怎么科学的学习安卓系统的framework)

相信大家在找工作的时候,肯定或多或少都被面试官问到过安卓的八股文。比如ActivityManagerService(简称AMS),或者WindowManagerService(WMS) 怎么实现的啊,有些什么细节需要注意啊,View被加入到ViewRoot的流程啊等等。每每看到这些…

关于自己学习安卓的体会

笔者学习了一段时间的安卓,有几个特别深的感触。 第一点。安卓开发虽然用的是JAVA语言(虽然有Kotlin但是笔者还没接触到),但是在大部分的开发过程中,基本都是重写各种类,自己写的东西比较少(这只…

【0】开始学习安卓了

说好的学习安卓,于是我就要开始学习安卓了,敢问安卓学习哪家强?? 一、准备好开发工具 (1)安卓SDK,建议用迅雷下载 (2)JDK,win764位的请到官网下载64位的 下载…

Android 学习(一)

安卓基本学习 架构体系 安卓的系统体系架构采用的是分层的架构 Kemel层: Android平台的基础。有线程管理和内存管理等功能。 HAL层: HAL的目的是为了把framework与Kernel隔开,让Android不至于过度依赖kernel,对kernel的简单封装…

安卓的学习

文章目录 第一节课:动/静态图片第二节课:一:按键监听事件二:界面中的文本框控件的文本内容自动与文本标签内容保持一致 第三节课一:点击增加的进度条二、获取按钮的信息二 可点击的列表 第一节课:动/静态图…

安卓基础学习

文章目录 前言工具创建项目简单控件即UI一、界面显示与逻辑处理二、文本三、布局 四、按钮五、控件综合训练(简易计算器)六、Activity七. 中级控件八、综合案列(登录与找回密码)数据存储一、SharedPreferences二、SQLite 九、外部存储空间十、Jetpack Room十一、正文字数太多&a…

【ANDROID学习】

Eclipse开发Android程序DEBUG 一 .虚拟机启动失败 报错信息: emulator: ERROR: x86_64 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: Please disable Hyper-V befo…

Android基础学习整理知识点

注:本文内容有自己理解部分,若有不对的地方,欢迎指出。 Android四大组件 Activity 什么是Activity? 是应用程序的组件,用于显示用户界面,可以与用户交互完成相关的操作。App中可以有很多个Activity。 Activity存储…

Android基础知识点学习总结

Android基础知识点学习总结 安卓基础知识个人学习笔记分享~ 一、Android系统架构 Linux内核层→系统运行层→应用框架层→应用层 1、Linux内核层:Android系统是基于Linux内核的,这一层为硬件提供了底层的驱动,例如显示驱动,音…

锚点的作用及用法

锚点的作用及用法 HTML中的a标签大家都非常熟悉,它是超链接标签,通过a标签能够跳转到href中指定的页面及指定的位置,a标签可以做到单页面跳转或多页面跳转,锚点能够跳转到当前页面中指定的位置,也能够跳转到指定的…

vue锚点的用法

一、锚点效果 二、示例 跳转到当前页面中指定的位置 <a href"#demo1">跳转到一的位置</a> <a href"#demo2">>跳转到二的位置</a> <a href"#demo3">>跳转到三的位置</a><div id"demo1"…

用html语句超链接锚点使用,HTML 锚点超链接

先介绍下场景: 我做了一个博客管理 首页界面如下: 标题是超链接,点击标题,进入博客详情页面: 博客标题下面有一个"返回"超链接,点击回到博客列表,超链接代码: 返回 说明:com.whuang.hsj.hrefClickCount的初始值为-1 , 后来我发现有的博客很长,从博客底部回到标题那儿…

UGUI锚点适配

UGUI锚点设置 UGUI锚点锚点图锚点类型锚点类型一&#xff1a;相对于父节点的某一点的位置锚点类型二&#xff1a;与父节点的两边保持固定距离与父节点的左右两边保持固定距离与父节点的上下两边保持固定距离 锚点类型三&#xff1a;与父节点的4边保持固定距离 Anchors锚点数值P…

目标检测:锚点介绍及应用

目标检测&#xff1a;锚点介绍及应用 介绍应用生成锚点图步骤 锚点匹配步骤 介绍 锚点相当于在待预测的特征数据上预设出可能的物体边界框&#xff0c;即预设出特征数据可能代表的物体区域&#xff0c;每个区域通常由两个属性构成——尺度&#xff08;scale或size&#xff09;和…

锚点用法

一、常见用法 1、给指定标签添加id和name&#xff1a; id或name都可以实现锚点&#xff0c;id是name的升级版&#xff0c;更有效&#xff0c;可以只用id。 2、给a标签的href绑定想要跳转到的位置的id。 二、js锚点定位 document.getElementById("divId").scrollInt…

html 锚点 中文,html怎么设置锚点

html设置锚点的方法&#xff1a;1、设置一个锚点链接“...”&#xff1b;2、在页面中需要的位置设置锚点&#xff1b;3、在href中的路径后面追加“#锚点名”即可。 本文操作环境&#xff1a;Windows7系统、HTML5版&#xff0c;DELL G3电脑 html中的锚点页面内跳转的锚点设置 页…

实现锚点跳转

实现锚点跳转要使用&#xff1a;a标签的href属性 其它某一个标签的id属性 设置某个标签的id属性a标签的href属性设置为&#xff1a;# 想要跳转位置的标签的id属性 <a href"#abc">点击跳转</a> ...... <div id"abc">将要跳转到这里&l…