首页 > 系统相关 >Linux 硬件管理

Linux 硬件管理

时间:2022-10-31 14:55:24浏览次数:85  
标签:cpupower 管理 dev 硬件 frequency 频率 Linux CPU 硬盘

实验环境:

  • Linux 5.19.13-arch1-1
  • konsole 22.08.2

1. 简介

计算机主要硬件:主板、CPU、GPU、内存、硬盘、声卡、显卡、电源、鼠标、屏幕 等,这里只讨论普通计算机的硬件管理,不包括路由器、交换机等硬件

Linux 中一切都是文件,包括所有的硬件,硬件以文件的形式保存在系统中(/dev),但管理硬件的时候,一般不会去修改硬件文件,而是修改 /etc 下的配置文件

有命令可以使用时,不建议去修改配置文件

修改配置文件,有时候配置错了一点东西,轻则可能导致系统无法启动某服务,重则整个服务瘫痪;而使用命令则可以避免这种人为错误

每个硬件的组成都很复杂,Linux 下的电源管理涉及到供电(Power Supply)、充电(Charger)、时钟(Clock)、频率(Frequency)、电压(Voltage)、睡眠/唤醒(Suspend/Resume)等方面,不可能在这里讲述得过于详细,所以这篇文章只是部分硬件的简单配置。

2. CPU

CPU 是计算机的大脑,大部分的运算都由 CPU 来完成。CPU 的一个重要指标是频率,当代计算机 CPU 大多都有功耗(频率)控制,Linux中,内核的开发者定义了一套框架模型(CPU Freq系统)来完成 CPU 频率动态调整这一目的,而基于 CPU Freq系统,开发者开发了更高级的 cpupower、cpufrequtils 工具,使用这两款工具的命令能更好地控制 CPU

我只查到了 cpupower 和 cpufrequtils 两个软件,如果有更多的,麻烦评论告诉我

基于 CPU Freq系统,Linux 中有以下六种调频策略,有些文档里有更多的调频策略,但本文章基于本地实验系统 Arch Linux,使用 cpupower 工具,其它策略自动忽略

调速器 描述
performance CPU 频率固定在最大频率
powersave CPU 频率固定在最小频率
userspace 运行于用户指定的频率
ondemand 按需快速动态调整CPU频率, 一有cpu计算量的任务,就会立即达到最大频率运行,空闲时间增加就降低频率
conservative 按需快速动态调整CPU频率, 比 ondemand 的调整更保守
schedutil 基于调度程序调整 CPU 频率。
1. cat /proc/cpuinfo
# /proc 是虚拟的文件系统,也是系统内核的镜像,存储当前内核运行状态的一系列文件
# 可以通过查询 /proc 下的文件 查看、理解 内核是怎么监管系统的
# 查看 CPU(info 文件内容在系统运行时不断增长,重启电脑则删除整个文件)
cat /proc/cpuinfo

2. lscpu
# 用于显示 CPU 架构的有关信息
# lscpu 命令从 sysfs 和 /proc/cpuinfo 收集 CPU 体系结构信息
# 语法格式:
lscpu [参数]
###
lscpu  # 不添加选项比较常用
### 选项
-a    打印在线和离线的CPU
-b    仅打印在线CPU
-c    仅打印离线CPU

###
# 查看当前 CPU 所使用的策略
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# 查看当前 CPU 频率
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
# 如果需要实时监测 CPU 的频率,运行以下命令:
watch grep \"cpu MHz\" /proc/cpuinfo
# 查看当前 CPU 可以使用的策略
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
# 查看当前 CPU 采样率(采样率决定调速器多久进行一次检查并调整CPU频率)
cat /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor

cppupower

cpupower 的配置文件位于 /etc/default/cpupower。此配置文件由 /usr/lib/systemd/scripts/cpupower 中的 bash 脚本读取,而该脚本由 systemd 通过 cpupower.service 激活。若要在计算机启动时自动启动 cpupower

# cpupower 语法格式
# 操作对象:表示需要操作的内核,默认"-c 0","-c all"表示对当前CPU所有内核进行操作
# frequency-info 表示只是查看信息,frequency-set 表示将对 CPU 进行设置
# 操作:当前一个参数是 frequency-info 时,没有操作参数;当前一参数为 
#     frequency-set 时,可以使用"set 策略"或"set 指定频率"来操作内核
cpupower [操作对象] <frequency-info / frequency-set> [操作]

1. cpupower frequency-info
# 用于查看 CPU 核心频率信息
# 语法格式
cpupower [选项] frequency-info
### 例子
# 查看 CPU 主频信息,默认是"-c 0"
cpupower frequency-info
# 查看当前 CPU 的全部主频信息
cpupower -c all frequency-info

2. cpupower frequency-set
# 用于设置 CPU 频率 或 所使用的策略
# 语法格式
cpupower [选项] frequency-info [参数]
# 设置当前 CPU 为节能模式
cpupower -c all frequency-set -g powersave
# 运行以下命令设置最大时钟频率(clock_freq 为时钟频率,单位为:GHz, MHz):
cpupower frequency-set -u clock_freq
# 运行以下命令设置最小时钟频率:
cpupower frequency-set -d clock_freq
# 运行以下命令设置运行于指定频率:
cpupower frequency-set -f clock_freq
# 如果需要指定特定的调速器,运行以下命令:
cpupower frequency-set -g governor

# 设置 cpupower 开机自启
systemctl enable cpupower.service

cpufrequtils

2. GPU

GPU

# 查看电脑硬件——GPU
lspci 
lspci | grep -i nvidia  # 英伟达显卡
nvidia-smi              # 英伟达显卡

2. 硬盘

即使是到了现在,SmartMontools依旧是一款比较流行的硬盘检测工具

# Arch 上安装 SmartMontools
yay -q smartmontools
# 其它,前往官网下载相应的软件包
# https://sourceforge.net/projects/smartmontools/files/smartmontools/7.3/smartmontools-7.3.tar.gz/download
# 下载后进行解压和安装,注意不要直接复制下面的命令,可能版本不同
wget https://sourceforge.net/projects/smartmontools/files/smartmontools/7.3/smartmontools-7.3.tar.gz/download
tar zxvf smartmontools-7.3.tar.gz 
cd smartmontools-7.3
./configure
make
sudo make install

# 开始进行检测.`-i`测试主办和硬盘是否支持 smart 技术,能打印出一堆东西就成功了
sudo smartctl -i /dev/sda 
sudo smartctl -i /dev/sda1
# 选项`-A`显示的是检测道德硬盘数据部分
sudo smartctl -A /dev/sda1

查看硬盘的数据、类型等信息

# 查看电脑硬件——硬盘
lsblk
df -a              # 查看使用率
df  /dev/sda1   # 查看单一分区的使用率
sudo fdisk -l     # 同查看,信息更详细

# 查看某个文件使用的数据块
du        # disk usage,逐级进入指定目录

3. 内存

# 监控 真实内存 使用情况
free
# 监控 虚拟 内存使用情况(Virtual Meomory Statistics)
vmstar
# 如果还想检测得更仔细,可以用第三方工具,书上推荐:memtest86

4. 磁盘管理

fdisk cfdisk lsblk
mount umount findmnt blkid partx /etc/fstab
df mkfs mkfswap fsck vmstat
iostat mkisofs sync

dd

硬盘命名方式

/dev/sda: sd 指 SCSI 硬盘,用a,b,c,d,e等代表第几块

/dev/hda: hd 指 IDE 硬盘,...

/dev/sda1: 最后的数字是指在这块硬盘上的第几个分区

配置硬盘

# /etc/fstab 用于定义磁盘分区,各种其他块设备或远程文件系统应如何装入文件系统
cat /etc/fstab    # 查看本机的fstab文件
### 部分显示信息
# /dev/sda1
UUID=d3ea83a0-a67a-44ed-9020-3ad52fce3544       /home           ext4            rw,relatime     0 2

其基本书写规则为:
<file system>    <dir>    <type>    <options>    <dump>    <pass>
# 更详细的介绍请查看:
# https://wiki.archlinux.org/title/Fstab_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
# 为设备持久化命名,最好使用 UUID,这是每个硬盘分区的唯一名字
lsblk -f           # 查看磁盘设备的 UUID
blkid /dev/sda1    # 查看磁盘设备的 UUID

为系统永久添加一个硬盘

# 检查系统已添加但未挂载的硬盘
sudo fdisk -l     # 假设 /dev/sdb 未挂载
# 转化硬盘类型
parted /dev/sdb
(parted)mktable             #输入mktable
New disk label type? gpt    #输入gpt 将磁盘类型转换为gpt 如磁盘有数据会警告,输入yes即可
quit     
# 划分分区并选定文件系统
sudo cfdisk /dev/sdb
# cfdisk 是一个好用的半图形化的程序,这里假设将整个硬盘划分为一个分区 /dev/sdb1
# 根据需求划分分区,type 一般为 Linux file system
# 格式化硬盘,一般可选 ext4,如果有需求可以选其他
mkfs.etx4 /dev/sdb1
# 建个目录,作为挂载点
mkdir /home/guyan/movic
mount /dev/sdb1 /home/guyan/movic
# 查看硬盘的UUID
blkid /dev/sdb1
# 修改 /etc/fstab,参考上面的 配置硬盘
sudo vim /etc/fstab
### 例如,添加
# /dev/sdb1
UUID=cb279989-9ef6-4cb9-ab31-656c18f40849    /home/guyan/movic       ext4            rw,relatime     0 2

5. 优化系统硬盘

  • 删除无用文件

  • 整理磁盘碎片。最好的方法是做一个完整的备份之后,重新格式化分区

  • 调整硬盘参数。在 RedHat 上可以试试 hdparm,但无论是服务器还是本机,我的建议都是:没有保存重要 文件的条件下,不要尝试

6. 网卡

这部分内容放在 第十章网络服务中讲述

参考

标签:cpupower,管理,dev,硬件,frequency,频率,Linux,CPU,硬盘
From: https://www.cnblogs.com/GuYan-Dragon/p/16844249.html

相关文章

  • linux安装python3.10
    1.下载python包https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tgz2.安装依赖包yuminstall-ygccpatchlibffi-develpython-develzlib-develbzip2-dev......
  • mount: you must specify the filesystem type(linux)
    先执行:​​mkfs.ext3/dev/sdb1​​再执行:......
  • Linux管道命令与shell编程(隐私版)
    管道相关命令目标​​cut​​​​sort​​​​wc​​​​uniq​​​​tee​​​​tr​​​​split​​​​awk​​​​sed​​准备工作vimscore.txtzhangsan689926lisi......
  • linux常用命令(一【公开版】)
    目录​​常用的:​​​​help:(2种)​​​​文件和目录常用命令​​​​LS:​​​​cd:​​​​touch:​​​​rm: ​​​​拷贝和移动文件:​​​​查看文件内容:​​​​c......
  • vm中挂载linux持有系统镜像光驱
    挂载持有系统镜像光驱5.1目标因为linux系统镜像中包含了常用的软件包,就不用从网上下载了所以需要挂载持有系统镜像的光驱5.2路径第一步:将linux系统镜像放到光驱......
  • Linux各目录及每个目录的详细介绍
    Linux各目录及每个目录的详细介绍【常见目录说明】目录 /bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/etc存放系统管理和配置文件/home存放所有用户文......
  • linux入门(隐私版)
    1操作系统的概述:1.1操作系统:操作系统作为接口的示意图:注意:大数据(电脑配置:内存16g,固态520g)1.2不同的操作系统1.2.1桌面操作系统1.2.2服务器操作系统 1.2.3嵌入式操作系统 L......
  • Linux网络配置
    一.网络地址配置1.1网络地址查看–ifconfig命令格式:ifconfig或ifconfig+网卡名主要参数信息:1.2网络配置修改临时修改IP地址ifconfig+网卡+......
  • 如何在linux安装jdk?
    第一步:卸载linux系统提供的jdk#查询已安装的jdkrpm-qa|grepjava#卸载rpm-e--nodeps软件包名第二步:上传按照包到​​/export/softwares​​​,解压到​​/......
  • frp Linux-centos7、windows 开机自动启动
    一、下载客户端和服务端https://github.com/fatedier/frp/releases二、配置服务端和客户端服务端解压文件夹,配置文件夹中的frps.ini文件#服务端frp配置[common]bind_port=......