每天一个 Linux 命令

2023-05-16

 

 https://blog.csdn.net/k346k346/category_9267835.html

 uptime 命令

1. 命令简介

uptime 用于显示系统总共运行了多长时间和系统的平均负载。

无选项 uptime 命令会显示一行信息,依次为:当前时间、系统已经运行了多长时间、目前有多少用户登录、系统在过去的 1 分钟、5 分钟和 15 分钟内的平均负载。输出结果等同于 top 命令汇总区的第一行。

2. 命令格式

uptime [options]

3. 选项说明

-p, --pretty
 采用可读友好的格式输出系统已运行时长
-h, --help
 显示帮助信息
-s, --since
 以格式 yyyy-mm-dd HH:MM:SS format 输出系统启动时间
-V, --version
 显示版本信息

4. 常用示例

(1)查看系统运行时长与平均负载。

uptime
22:54:55 up 445 days,  9:38,  5 users,  load average: 0.08, 0.08, 0.06

显示的信息依次为:当前时间(22:54:55)、系统已经运行了多长时间(up 445 days, 9:38,表示 445 天 9 时 38 分钟)、目前有多少登录用户(5 users)、系统在过去的 1 分钟、5 分钟和 15 分钟内的平均负载(load average: 0.08, 0.08, 0.06)。

(2)查看系统启动时间。

uptime -s
2018-07-20 13:16:21

(3)只输出系统运行时长。

uptime -p
up 1 year, 11 weeks, 4 days, 9 hours, 43 minutes

5. 拓展知识

5.1 什么是系统平均负载

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

可运行状态的进程指正在使用 CPU 或正在等待使用 CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态(Running 或 Runnable)的进程。

不可中断状态的进程指正在等待某些 I/O 的进程,即我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。例如等待磁盘 I/O,当一个进程向磁盘读写数据时,为了保证数据的一致性,在得到磁盘回复前,它是不能被其他进程打断的,这个时候的进程就处于不可中断状态。如果此时的进程被打断了,就容易出现磁盘数据与进程数据不一致的问题。所以,不可中断状态实际上是系统对进程和硬件设备的一种保护机制。

5.2 系统平均负载多少时合理

uptime 命令给出的三个时间段的平均负载并不是标准化的,因为系统中 CPU 核心数量是不定的。所以平均负载为 1 意味着拥有一个 CPU 核心的系统一直在忙碌,而在一个拥有 4 个 CPU 核心的系统上,意味着系统 75% 的时间是空闲的。

所以,当系统平均负载除以 CPU 核心数小于等于 1 表示系统没有出现过载的情况。最理想的情况是每个 CPU 上都刚好运行一个进程,这样 CPU 就得到了充分的利用。

三个时间段统计出的系统平均负载,我们以哪个数字为准?一分钟?五分钟?还是十五分钟?我们应该着眼于五分钟或者十五分钟的平均数值,如果前一分钟的负载情况是 1.00,那么仍可以说明认定服务器情况还是正常的,但是如果十五分钟的数值仍然保持在 1.00,那么就值得注意了。

另外,读取文件 /proc/loadavg 可直接查看系统平均负载。

cat /proc/loadavg
0.04 0.03 0.05 1/319 21900

除了前 3 个数字表示系统平均负载外,后面的一个分数,分母表示系统进程总数,分子表示正在运行的进程数;最后一个数字表示最近运行的进程 ID。

5.3 获取系统 CPU 核心数

使用 lscpu 命令查看。

Image

或者直接访问文件 /proc/cpuinfo 获取 CPU 核心数。

grep 'model name'  /proc/cpuinfo | wc -l
6

5.4 平均负载与 CPU 使用率的关系

在日常使用中,我们经常容易把平均负载和 CPU 使用率混淆,这里我们做下区分。

平均负载是指单位时间内,系统中处于可运行状态和不可中断状态的进程数,所以,他不仅包扩了正在使用 CPU 的进程,还包括等待 CPU 和等待 I/O 的进程。

而 CPU 使用率,是单位时间内 CPU 繁忙情况的统计,和平均负载并不一定完全对应。比如:

(1)CPU 密集型进程,使用大量 CPU 会导致平均负载升高,此时这两者是一致的;

(2)I/O 密集型进程, 等待 I/O 也会导致平均负载升高,但是 CPU 使用率不一定很高;

(3)存在大量等待 CPU 调用的进程也会导致平均负载升高,此时的 CPU 使用率也会比较高。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每天一个 Linux 命令 的相关文章

随机推荐

  • Linux 终端快捷键

    Linux 终端快捷键 你可能会有这样的疑问 xff1a 对于有些快捷键 xff0c 明明有等效的 一个按键就能搞定的操作 xff0c 为什么非要舍近求远 用两个组合键来实现 xff1f 当对键盘 终端命令熟练到一定程度之后 xff0c 你
  • Adaptive AUTOSAR----Adaptive studio

    Adaptive studio Adaptive Studio 是包含在 RTA VRTE SK 中的 AUTOSAR 编辑器 Adaptive studio 通过高级抽象支持所有 adaptives autosar arxml 元素的配置
  • Linux tcpdump命令详解

    简介 用简单的话来定义tcpdump xff0c 就是 xff1a dump the traffic on a network xff0c 根据使用者的定义对网络上的数据包进行截获的包分析工具 tcpdump可以将网络中传送的数据包的 头
  • 什么是 E2E 保护 ?

    安全在每个领域都是一个永恒的话题 xff0c 汽车也不例外 xff0c 而随着最近几年汽车电动化 智能化和网联化的发展 xff0c 汽车安全也越来越受到用户及开发人员的重视 xff0c 安全的要素也是多方面的 xff0c 例如用户可能关心在
  • CAN总线基础

    概述 汽车电子设备的不断增多 xff0c 对汽车上的线束分布以及信息共享与交流提出了更高的要求 传统的电气系统往往采用单一连接的方式通信 xff0c 这必将带来线束的冗余以及维修的成本的提高 单一布线连接 传统的单一通信的对接方式 xff0
  • 说一说LIN总线

    前几天小编画点时间看了一些关于LIN总线基础的内容 xff0c 把其中的关键点提取了出来 xff0c 在这里分享给大家 在这里你可能要问 不都有CAN总线了吗 xff1f 这个LIN总线又是从哪里来的 xff1f 其实理由很简单 xff0c
  • CAN FD 介绍

    随着电动汽车 xff0c 无人驾驶汽车技术的快速发展 xff0c 以及对汽车高级驾驶辅助系统和人机交互HMI需求的增加 xff0c 传统的CAN总线在传输速率和带宽等方面越来越显得力不从心 xff0c 其主要原因如下 xff1a 1 通常整
  • FlexRay 介绍

    汽车上的总线技术包括 xff1a LIN CAN CAN FD FlexRay MOST及Ethernet xff0c 我们之前已经分享了LIN xff0c CAN CAN FD总线 在开始阅读之前 xff0c 如果你对已介绍的总线技术还不
  • FlexRay总线原理及应用

    由于传统的CAN解决方案不能满足汽车线控系统 xff08 X by Wire xff09 的要求 于是在 2000 年 9 月 xff0c 宝马和戴姆勒克莱斯勒联合飞利浦和摩托罗拉成立了 FlexRay 联盟 该联盟致力于推广 FlexRa
  • SENT信号介绍

    Vehicle攻城狮 The people who are crazy enough to think they can change the world are the ones who do SENT背景介绍 提到车载总线 xff0c
  • Linux 日志管理

    常用日志文件 系统日志是由一个名为syslog的服务管理的 xff0c 如以下日志文件都是由syslog日志服务驱动的 xff1a var log boot log xff1a 录了系统在引导过程中发生的事件 xff0c 就是Linux系统
  • SPI 通讯协议

    Cuitbasics 汽车ECU设计 2 2 当您将微控制器连接到传感器 xff0c 显示器或其他模块时 xff0c 您是否考虑过这两种设备是如何相互通信的 xff1f 他们到底在说什么 xff1f 事实上电子设备之间的通信就像人类之间的交
  • UART串口通讯

    UART代表通用异步接收器 发送器也称为串口通讯 xff0c 它不像SPI和I2C这样的通信协议 xff0c 而是微控制器中的物理电路或独立的IC UART的主要目的是发送和接收串行数据 xff0c 其最好的优点是它仅使用两条线在设备之间传
  • 一文搞懂AUTOSAR的DEM模块

    Dem全称为Diagnostic Event Manager xff0c 负责故障事件的处理 故障数据的存储和管理 简单说其功能是故障事件确认前的故障debounce xff0c 故障事件确认时的故障数据存储 xff0c 故障发生后的故障老
  • linux父子进程问题——孤儿进程与僵尸进程[总结]

    今天遇到一个linux进程启动时指定Max open files不对的问题 xff0c 导致程序建立socket异常 xff0c 进而导致fullgc问题 xff0c 影响正常服务 所以顺带又温习了下linux下的父子进程的特性 孤儿进程与
  • C++11/14/17一些好用新特性自己整理下

    1 override xff1a 子类继承父类的时候 xff0c 子类虚函数名字写错了或者参数列表不匹配会变成另外一个函数编译器无法判断对错 xff0c 和你写不写virtual也没关系 xff0c 这时候可以在虚函数结尾加上overrid
  • vector中emplace_back方法的用途

    在写代码的过程中 xff0c CLion提醒我把 span style background color ffd900 push back span 方法替换成 span style background color ffd900 empl
  • constexper+const+常量表达式

    常量表达式 xff08 const expression xff09 是指值不会改变并且在编译过程就能得到计算结果的表达式 显然 xff0c 字面值属于常量表达式 xff0c 用常量表达式初始化的 const 对象也是常量表达式 一个对象
  • 这篇 CPU Cache,估计也没人看

    无论你写什么样的代码都会交给 CPU 来执行 xff0c 所以 xff0c 如果你想写出性能比较高的代码 xff0c 这篇文章中提到的技术还是值得认真学习的 另外 xff0c 千万别觉得这些东西没用 xff0c 这些东西非常有用 xff0c
  • 每天一个 Linux 命令

    https blog csdn net k346k346 category 9267835 html uptime 命令 1 命令简介 uptime 用于显示系统总共运行了多长时间和系统的平均负载 无选项 uptime 命令会显示一行信息