Linux内核如何与硬件交互

Linux 提供了各种工具,用于报告和检查 CPU、RAM、存储和网络的操作。本文演示了其中许多实用程序的工作原理。

译自Linux: How the Kernel Interacts with Hardware,作者 Damon M Garn。

这是达蒙·加恩关于了解 Linux 操作环境所著的十部分系列的第三部分。另请参见“Linux:了解 Linux 命令行”。

在理解计算机系统的结构时,不妨将其视为包含四个主要子系统。这些子系统相互关联并相互影响,但首先将它们视为独立的组件。

这四个子系统是:

  • 中央处理器 (CPU):处理器负责运行代码。
  • 随机存取存储器 (RAM):内存临时存储数据并允许快速检索。它与 CPU 密切相关。
  • 存储:固态和硬盘驱动器即使在系统关闭时也能存储数据。存储容量会影响系统性能和功能。
  • 网络:提供网络连接,允许交换文件或其他通信。

Linux提供了用于报告和检查这些组件的各种工具。本文演示了其中许多实用程序。

您需要一个功能齐全的 Linux 发行版才能按照以下命令和示例进行操作。您可以使用物理或虚拟计算机,任何发行版都应该可以工作。请注意,某些发行版包含与其他发行版不同的工具。大多数 Linux 发行版都包含此处描述的工具。

本文是涵盖各种系统管理员主题的更大系列 Linux 文章的一部分。您可以按照Linux:Linux 技能模块存储库的配套实验室中找到的信息构建一个实验室环境。

显示 CPU 和内存信息

CPU 和内存上面描述为独立的子系统,但它们密切相关。本节介绍如何显示有关这两者的信息。

Linux 在引导过程中清点可用硬件。一些硬件信息存储在/proc目录中,该目录在每次系统启动时都会动态填充。此目录包含两个与处理器和内存相关的文件。

  • /proc/cpuinfo:提供系统在启动过程中检测到的有关处理器的信息。
  • /proc/meminfo:提供系统在启动过程中检测到的有关内存的信息。

使用cat命令显示此信息。cat 命令显示文件的内容,使其成为读取文件的便捷工具。/proc 目录还包含 PCI 总线数据、IO 端口等。

$ cat /proc/cpuinfo

通过 cat /proc/cpuinfo 指令输出。

输出显示了两个 CPU 内核(0 和 1),以及功能和架构信息。此屏幕截图来自虚拟机,不显示处理器型号或规格。

meminfo 文件显示了总内存以及如何使用该内存。

$ cat /proc/meminfo

cat /proc/meminfo 命令的部分输出。

为什么这些信息很重要?也许系统对您来说是新的,您不知道其当前规格是什么。或者您正在考虑升级并希望查看现有硬件。

您还可以使用lscpu命令显示来自 /proc/cpuinfo 的信息。

一个常见的升级是内存。通过添加 RAM,相对容易提高某些系统的性能。/proc/meminfo 显示已安装内存的数量和类型。

内存工具

用于内存利用率的两个标准信息收集工具是freevmstat。这些工具提供了有关系统识别了多少内存以及如何使用它的基本信息。

free 命令显示系统上当前未使用的 RAM,因此可用于其他应用程序或服务。

free 命令显示内存总计和利用信息。

使用 -h 选项以更用户友好的格式显示结果。

vmstat 命令指示虚拟内存利用率。回想一下,RAM 和存储设备都存储信息。如果系统没有足够的 RAM 来存储所需数据,它可以从磁盘借用存储空间。磁盘提供了额外的“虚拟内存”。但是,此解决方案可能会极大地减慢系统速度,如果可能,应避免使用。最好添加更多内存或减少系统工作负载。使用虚拟内存也称为交换。

*vmstat 命令显示的是虚拟内存使用情况。*使用 -S M 以兆字节显示结果。

使用 uname 命令

显示基本 CPU 信息的快速命令是uname。它有几个选项可以修改其输出。使用-a选项显示所有处理器和操作系统详细信息。

uname 命令提供的信息不多,但它显示的信息很有用。信息包括 Linux 内核版本、硬件架构、处理器类型和操作系统名称。

显示存储信息

硬盘驱动器 (HDD) 或固态驱动器 (SSD) 通常提供计算机存储。这些设备支持长期文件存储。查看系统上的存储信息可以让你预测容量问题并可能提高性能。

大多数人认为容量是存储的主要属性。如今的存储磁盘往往非常大,通常大于最终用户需要。在大多数业务环境中,数据应存储在网络服务器上。但是,值得检查存储容量以确保系统有足够的空间使用,尤其是对于服务器而言。

存储磁盘会影响系统性能。系统、服务和用户文件存储在驱动器上。读取和写入这些文件所需的时间越长,系统就会变得越慢。

了解分区

存储磁盘被划分为分区。分区是通常分配给特定类型数据的逻辑存储单元。

使用与上面用于 CPU 和内存数据的相同cat命令显示分区信息。参数是/proc/partitions

$ cat /proc/partitions

请注意屏幕截图中的 sda 详细信息。

第一个存储磁盘通常命名为sda,第二个命名为sdb,依此类推。磁盘上的每个分区都按从 1 开始的顺序进行编号。因此,第二个存储磁盘上的第三个分区是sdb3

/proc目录还包含有关 SCSI 磁盘 (/proc/scsi/scsi) 和块设备 (/proc/diskstats) 的信息。

你可以使用lsblk命令显示类似的信息。你可以将该命令指向特定存储磁盘,例如/dev/sda

$ lsblk /dev/sda

lsblk命令报告了存储磁盘sda的信息,显示了两个分区。

lsblk 命令使用分层树结构显示磁盘、分区和逻辑卷,以便于解释。

显示容量信息

/proc/partitions文件和 lsblk 输出显示存储结构,但你通常使用dfdu命令来了解有关容量和利用率的更多信息。

磁盘利用率 (du) 命令对于了解特定目录或文件占用多少空间非常有用。例如,如果你有一个装满图片的文件夹,你可以使用 du 命令来确定文件夹使用了多少存储驱动器。du 命令通过添加所有选定目录和文件的大小来估算此消耗。

你几乎总是使用-h选项以人类可读的格式(例如 KB、MB、GB 等)显示大小。

尝试使用 du 检查日志文件在 Linux 设备上消耗了多少容量。Linux 将日志文件存储在/var/log目录中。

$ du -h /var/log

du 命令显示每个目录和每个文件的磁盘使用情况。

-s选项提供利用率摘要,而不列出所有文件。这对于内容较多的目录很有用。

搭配 du 命令使用 -s 选项可以显示存储信息摘要。

df 实用程序通过显示可用和已用空间的总量来显示整体驱动器容量消耗。例如,如果你的系统有一个带有分区的硬盘驱动器,df 将显示该驱动器有多少可用空间用于更多文件和程序,以及有多少空间已被占用。

df 命令还受益于-h选项,使其输出更易于用户使用。

$ df -h /dev/sda

显示网络信息

网络连接对于大多数 Linux 设备至关重要。有线和无线网络接口卡 (NIC) 将系统连接到其他网络节点,从而实现电子邮件、网络浏览、打印、文件共享等功能。

最常见的网络信息收集和故障排除工具之一是ip命令。此命令包含许多修改其功能的子命令。例如,使用ip addr命令显示基本网络设置:

$ ip addr show enp0s5

ip addr 命令的部分输出,显示 enp0s5 接口的信息。

上面显示的ip addr命令显示接口名称 (enp0s5)、基本传输信息 (mtu 1500) 和状态 (UP)。它还显示接口的媒体访问控制 (MAC) 硬件地址 (00:1c:42:c2:62:1c) 和 IPv4 逻辑地址 (10.211.55.4/24)。状态和 IP 地址对于故障排除尤为重要。

ip 命令的较旧版本是ifconfig。某些 Linux 发行版可能仍识别该命令,但您应该学习 ip 命令。

使用 ethtool 实用程序

基本ethtool命令显示指定网卡(enp0s5)的当前硬件设置。

$ ethtool enp0s5

ethtool命令显示网络接口卡信息。

添加-i选项以显示设备驱动程序信息。

$ ethtool -i enp0s5

ethtool -i 命令显示网卡设备驱动程序的详细信息。

通常最好使用最新的驱动程序。

ethtool 的一个实用用途是让物理网卡的指示灯闪烁一段时间。此功能有助于识别具有多个接口的 Linux 设备上的网卡。

$ ethtool --identify enp0s5 5

上述示例使指示灯闪烁五秒钟。

使用监控工具

上述工具显示有关各个系统组件的特定信息。但是,top、htop 和 Glances 等工具提供了更广泛的硬件视图。本部分中的实用程序以实时方式显示性能信息,并帮助您分析硬件的使用情况。

使用 top 工具

标准的 Linux 硬件监控工具是top。它在上方框中显示基本的硬件信息,在下方部分中显示系统进程及其 CPU 和内存消耗的动态表。

top 命令的上半部分显示了硬件详细信息和使用情况,例如空闲内存和处理器时间。

硬件摘要下方部分显示了运行中的进程及其 CPU 和内存消耗(部分屏幕截图)。

使用PM键对主要的 CPU 和内存消耗者进行排序。当您检查完 top 的结果后,按q键退出。

使用 htop 工具

更动态的利用率工具是htop。并非所有 Linux 发行版都默认安装它,因此您可能需要将其添加到您的系统中。htop 工具是一个实时监控器,具有更强大的仪表板,包括颜色编码和动态元素。这更像是一个监控工具,而不是一种收集系统硬件信息的方式,但它提供了有关硬件行为方式以及系统是否有足够资源来处理其工作负载的见解。

使用 Glances 工具

Glances硬件监控器并未默认安装在所有 Linux 发行版上,但将其添加到系统中非常容易。Glances 使用易于阅读的仪表板提供系统资源的实时监控。对于拥有多个系统的 Linux 用户来说,Glances 非常棒,因为它包括一个网络模式,允许远程连接以监控多个设备。

Glances 是开源的,并用 Python 编写,因此可以在 Linux、macOS 和 Windows 系统上运行,这使其成为更令人信服的信息收集工具。

总结

回想一下,计算机系统由多个子系统组成。其中包括处理能力、存储和网络。系统管理包括显示硬件信息并使用它来管理服务、进程、应用程序等。

Linux 用户将希望看到硬件信息,以帮助选择系统升级、监控性能和解决问题。许多资源(如 /proc/cpuinfo 和 /proc/meminfo)提供静态信息。其他资源(如 top 和 Glances)提供实时处理器、内存、存储和网络硬件资源的动态视图。您经常会发现自己使用多个工具来确保您了解系统规范。

本文在云云众生https://yylives.cc/)首发,欢迎大家访问。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容