sysstat:
# <https://github.com/sysstat/sysstat>
$ sudo apt-get install sysstat
# 包括 iostat/mpstat/pidstat/tapestat/cifsiostat
iostat -d -x -k 1 10
pidstat -d -p pid
iotop
# 查看进程的diskio
$ sudo apt-get install iotop
$ sudo iotop
df
df计算文件系统磁盘空间使用:
df
$ df -h
# 查看目录信息(读写哪个设备)
$ df /path/folder
dd
dd转化并拷贝文件:
dd
fsck
fsck检查并修复文件系统:
fsck
fdisk
支持msdos,支持2T以下的磁盘.
fdisk管理磁盘分区表:
fdisk
fdisk -l
fdisk /dev/sda # 可以创建新的磁盘分区
> n ... 创建新的分区
> t (8e表示linux LVM), 修改分区类型
> w 保存修改
partprobe /dev/sda # 在不重启的情况下保存分区
parted
支持gpt分区表,支持2T以上的大磁盘.
大存储分区工具,比如nas,raid.
parted /dev/sda print
mkfd
mkfs:
mkfs [options] [-t type fs-options] device [size]
mkfs.ext4 /dev/sdb1 # 将分区格式化成ext4格式.
mount/umount
相关文件:
/etc/fstab
/etc/mtab
查看磁盘的uuid, 通过uuid挂载
ls -l /dev/disk/by-uuid
mount/umount挂载文件系统:
mount # 查看所有挂载信息
mount -t type -o option device dir
# 将目录挂载到指定磁盘分区
mount -t ext4 /dev/sdb1 /opt
等效修改/etc/fstab
/dev/sdb1 /opt ext4 defaults 0 0
# 将目录挂在到内存上.
mount -t tmpfs -o size=100G tmpfs /var/www
# 本机挂载, 将本机的folder2挂载到folder1, folder2中原有的内容会隐藏.
mount --bind /path/folder1 /path/folder2
/path/folder1 /path/folder2 none bind 0 0
# 挂载到overlay
mount -t overlay -o lowerdir=/path/lower,upperdir=/path/upper,workdir=/path/work overlay /path/dir
umount
umount device/dir
磁盘管理
# 先创建linux lvm分区
pvcreate <pv-name> # 创建物理卷PV
pvdisplay
vgextend <vg-name> <pv-name> # 给物理卷创建卷组VG
vgdisplay
lvextend -r -l +100%FREE <lv-path> # 将物理卷上的空闲空间全部放到逻辑卷LV上
lvdisplay
sync同步缓存写入固态存储:
sync
查看所有硬件设备:
lshw # 列出硬件
lshw -class disk # 查看磁盘设备
设备管理:
lspci # 列出所有PCI设备
lsusb # 列出USB设备
lsblk # 列出块设备
setleds
loadkeys
dumpkeys
MAKEDEV
IOPS
磁盘IO.
安装fio:
$ sudo apt-get install fio
测试随机读写的IO:
// 测试本地磁盘读写
$ fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randrw \
-rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 \
-group_reporting -name=mytest