一、CPU
- 物理总核数 = 物理 CPU 个数 * 每个物理 CPU 的核数。
- 逻辑CPU数(显示的核数) = 物理 CPU 个数 * 每个物理 CPU 的核数 * 超线程数
# 查看系统内核信息
uname -a# 查看系统内核版本
cat /proc/version
# 1. 查看`CPU`型号
dmidecode -s processor-version
#pc-i440fx-2.1
#Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz## 查看当前 CPU 运行在 32bit 还是 64bit 模式下
## 如果是运行在 32bit 下也不代表 CPU 不支持 64bit
getconf LONG_BIT
cat /proc/cpuinfo
## 查看有几个逻辑 CPU,包括 CPU 型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
## 查看有几颗 CPU,每颗分别是几核
cat /proc/cpuinfo | grep physical | uniq -c
## 如果结果大于 0,说明支持 64bit 计算
## lm 指 long mode,支持 lm 则是 64bit
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
1. /proc/cpuinfo
# 1. 查看`CPU`详细信息(型号、主频、内核信息等)
cat /proc/cpuinfo
#...# 2. 查看`CPU`型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
# 2 Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
# 8 Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHzcat /proc/cpuinfo | grep name | sort | uniq
#model name : Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
#model name : Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
- sort 命令:将以默认的方式将文本文件的第一列,以 ASCII 码的次序排列,并将结果输出到标准输出。
- uniq 命令:使用 uniq 命令删除重复的行,当重复的行并不相邻时,uniq 命令是不起作用的,这是和 sort 命令组合。
## 1. 查看物理`CPU`个数(`physical id`)
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
#2
## 两个物理`CPU`
cat /proc/cpuinfo | grep "physical id" | sort | uniq
#physical id : 0
#physical id : 1---## 2. 查看每个物理`CPU`的核数(`cpu cores`)
cat /proc/cpuinfo | grep "cores" | uniq
cat /proc/cpuinfo | grep "cpu cores" | uniq
#cpu cores : 4## 查看`CPU`是否启用超线程
## 如果`cpu cores`和`siblings`数量一致,则没有启用超线程,否则超线程被启用
cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq
#cpu cores : 1
#siblings : 2---## 3. 查看逻辑 CPU 个数(显示的核数)
cat /proc/cpuinfo | grep "processor" | wc -l
#2more /proc/cpuinfo | grep "model name"
#model name : Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
#model name : Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHzgrep "model name" /proc/cpuinfo
#model name : Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
#model name : Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHzgrep "model name" /proc/cpuinfo | cut -f2 -d:
# Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
# Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
二、内存
# 显示内存状态(显示以`MB`为单位内存组昂头)
free –m
1. /proc/meminfo
# 查看内存详细信息
cat /proc/meminfo# 查看总内存数
cat /proc/meminfo | grep MemTotal
三、磁盘
# 查看磁盘挂载情况
$ mount# 查看硬盘的分区
$ fdisk -l# 查看 IDE 硬盘信息
$ hdparm -i /dev/hda
# 查看 STAT 硬盘信息
$ hdparm -I /dev/sda
$ apt-get install blktool # 同上
$ blktool /dev/sda id
1. /proc/partitions
# 查看硬盘和分区详细信息
$ cat /proc/partitions
`
major minor #blocks name253 0 41943040 vda253 1 41940992 vda1
`
2. df
$ df --help# 查看磁盘分区信息
$ df
# 查看每个根路径的分区大小(显示格式化)
$ df -h# 查看磁盘剩余空间
$ df -hl
3. du(disk usage)磁盘使用情况
$ du --help# 显示目录或文件的大小
$ du
# 显示当前目录的大小
$ du -h
# 于查看文件和目录的磁盘使用情况。对于文件夹,你可以使用 -h 选项来以易读的格式(如KB、MB、GB)显示大小。
# 查看指定目录下的所有文件大小(包含子文件夹)
$ du -h /path/to/directory
# 查看目录及子目录大小
$ du -H -h# 看文件夹的总大小,而不是其子目录和文件的大小,可以使用:
# 返回该目录的大小
$ du -sh /path/to/directory
# 查看目录占用空间
$ du -hs /path/to/directory
# 返回该文件夹总M数
$ du -sm ['文件夹']
# 查看根目录下每个文件夹的大小
$ du -sh *
# 查看当前目录下各个文件,文件夹占了多少空间,不会递归
$ du -sh *# 显示当前目录中每个目录的大小
$ du -h --max-depth=1
$ du -sh /var/log
1. 磁盘扩容
- linux磁盘扩容
- Linux中/目录扩容
- linux新增硬盘并扩容到指定分区目录下
- 磁盘新扩容的空间,可以被独立创建成一个分区,或者用于扩容已有分区的空间,以下两种场景需求:
- 对于新增的容量空间,建立独立的新分区,老的分区保持不变。
- 扩容旧的分区至新增的容量空间,并且保持老分区的数据不丢失。
1. 新空间格式化成一个独立分区
# 1. 查看数据盘信息
fdisk -l # 查看数据盘的已分区和未分区的信息
## df -h # 无法看到未分区和格式化的数据盘# 2. 数据盘分区
fdisk /dev/sda # 新建一个分区
# 依次输入以下命令
p # 查看现有分区信息
n # 新建分区
p # 主分区
3 # 使用第3个主分区
两次回车 # 使用默认配置
w # 保存分区表
# 开始分区
# 这里是以创建1个分区为例,也可以根据需求创建多个分区# 3. 查看新分区
fdisk -l # 看到新分区`/dev/sda2`已经创建完成# 4. 格式化新分区
# 在进行分区格式化时,可以自行决定文件系统的格式,如ext2、ext3等。这里以'ext3'为例:
mkfs.ext3 /dev/sda3 # 对新分区进行格式化# 5. 挂载新分区
mkdir /data # 创建data目录
mount /dev/sda3 /data # 手动挂载新分区
df -h # 查看数据盘信息# 6. 添加分区信息
# 如果希望云服务器在重启或开机时能自动挂载数据盘,必须将分区信息添加到`/etc/fstab`中;
# 如果没有添加,则云服务器重启或开机后,都不能自动挂载数据盘。
echo '/dev/sda3 /data ext3 defaults 0 0' >> /etc/fstab # 添加分区信息
cat /etc/fstab # 查看分区信息
2. 新空间增加到已有非 /
分区空间中
# 1. 查看数据盘信息
## fdisk -l # 查看数据盘的已分区和未分区的信息
df -h # 无法看到未分区和格式化的数据盘# 2. 卸载正在使用的磁盘
umount /data # 卸载已挂载的需要扩容的磁盘# 3. 数据盘分区
fdisk /dev/sda
# 依次输入以下命令
p # 查看现有分区信息
d # 删除需要扩容的分区
n # 新建分区
p # 新建主分区
3 # 使用第3个主分区(必须保持与需要扩容的分区一样)
两次回车 # 使用默认配置
w # 保存分区表
# 开始分区# 4. 检查扩容后的分区
fdisk -l /dev/sda3 # 新的分区sda3已经创建并扩容完成
e2fsck -f /dev/sda3 # 检查扩容的分区是否ok# 5. 扩容分区
resize2fs /dev/sda3 # 扩容分区# 6. 挂载扩容后的分区
mount /dev/sda3 /data # 手动挂载扩容后的分区
df -h # 查看数据盘信息
ll /data # 查看到扩容后原分区的数据没有丢失
3. 新空间增加到 /
分区空间中
# 1. 查看数据盘信息
fdisk -l # 查看数据盘的已分区和未分区的信息
df -h # 无法看到未分区和格式化的数据盘# 2. 分区完后把新分区改成'LVM'卷的文件系统
# fdisk -l 看到/dev/sda3的Id号为83,我们要将其改成8e
fdisk /dev/sda
t # 改变一个分区的系统ID
3
L
8e
w # 保存分区表# 3. 查看新分区
fdisk -l # 查看ID是否修改成功# 4. 重新启动虚拟机,系统重启后,格式化新的分区为'ext4'格式
mkfs.ext4 /dev/sda3# 5. 格式化后,创建PV(物理卷)
pvcreate /dev/sda3
pvdisplay # 查看当前的物理卷# 6. 扩展VG把物理卷添加到VG里面
pvs # 查看新建的物理卷
vgextend cl /dev/sda3# 7. 把VG中多余的空间添加到/dev/mapper/cl-root 中
lvextend -L +1.9G /dev/mapper/cl-root /dev/sda3# 8. xfs_growfs /dev/mapper/cl-rootdf -h
4. 查看新增空间
df -h
fdisk -lfdisk /dev/sda
n
四次回车
wfdisk -lvgextend cl /dev/sda3pvslvextend -L +1.9G /dev/mapper/cl-rootdf -hresize2fs /dev/mapper/cl-root
xfs_growfs /dev/mapper/cl-rootdf -h