swap空间管理和优化&&移动介质
Posted 一起学IT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swap空间管理和优化&&移动介质相关的知识,希望对你有一定的参考价值。
一、free 命令
free命令 可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
1.-b # 以Byte为单位显示内存使用情况;
2. -k # 以KB为单位显示内存使用情况;
3. -m # 以MB为单位显示内存使用情况;
4. -g # 以GB为单位显示内存使用情况。
5. -o # 不显示缓冲区调节列;
6. -s<间隔秒数> # 持续观察内存使用状况;
7. -t # 显示内存总和列;
8. -V # 显示版本信息。
9.-h #显示MB为单位得显示情况(比-m更为清晰)
二、swap介绍
swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的 RAM 保存系统处理的数据
时会将数据写入 swap 分区,当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过
多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存泄露
注意:为优化性能,可以将swap 分布存放,或高性能磁盘存放
官方推荐swap空间:
https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/installation_gui
de/sect-disk-partitioning-setup-ppc#sect-recommended-partitioning-scheme-ppc
当内存剩余小于百分之30时,使用swap:
[root@centos8 ~]#cat /proc/sys/vm/swappiness
30
三、增加新得swap分区
1、新加硬盘扫描
echo - - - >> /sys/class/scsi_host/host0(可以更改)/scan
2、创建分区
fdisk /dev/sdb
n
p
3、创建swap文件系统
[root@centos8 ~]#mkswap /dev/sdc1
Setting up swapspace version 1, size = 4 GiB (4294942720 bytes)
4、挂载及查看
[root@centos8 ~]#cat /etc/fstab
UUID=b68bd6a2-208b-4f05-860b-a75e71492586 swap swap defaults 0 0
[root@centos8 ~]#swapon -a
[root@centos8 ~]#free -h
total used free shared buff/cache available
Mem: 1.8Gi 567Mi 582Mi 10Mi 665Mi 1.1Gi
Swap: 11Gi 0B 11Gi
[root@centos8 ~]#swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 8388604 0 -2
/dev/sdc1 partition 4194280 0
5、更改优先级
[root@centos8 ~]#cat /etc/fstab
UUID=b68bd6a2-208b-4f05-860b-a75e71492586 swap swap pri=10 0 0
重新挂载使优先级生效:
[root@centos8 ~]#swapoff /dev/sdc1
[root@centos8 ~]#swapon -a
[root@centos8 ~]#swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 8388604 0 -2
/dev/sdc1 partition 4194280 0 10
四、使用光盘
挂载光盘:
mount /dev/cdrom /mnt/ 或者/dev/sr0
也可以挂载ISO文件。
制作ISO文件:
[root@centos7wyj ~]$cp /dev/sr0 /data/centos7.iso
[root@centos7wyj ~]$ll /data/
-rw-r----- 1 root root 275238912 Mar 16 01:50 centos7.iso
[root@centos7wyj ~]$mount /data/centos7.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@centos7wyj ~]$ll /mnt/
total 696
-rw-r--r-- 3 root root 14 Oct 30 2020 CentOS_BuildTag
drwxr-xr-x 3 root root 2048 Oct 27 2020 EFI
-rw-rw-r-- 21 root root 227 Aug 30 2017 EULA
-rw-rw-r-- 21 root root 18009 Dec 10 2015 GPL
drwxr-xr-x 3 root root 2048 Oct 27 2020 images
drwxr-xr-x 2 root root 2048 Nov 3 2020 isolinux
drwxr-xr-x 2 root root 2048 Oct 27 2020 LiveOS
drwxr-xr-x 2 root root 673792 Nov 4 2020 Packages
drwxr-xr-x 2 root root 4096 Nov 4 2020 repodata
-rw-rw-r-- 21 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r-- 21 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r-- 1 root root 2883 Nov 4 2020 TRANS.TBL
创建ISO文件:
mkisofs -r -o /root/etc.iso /etc #来自于genisoimage包
[root@centos8 ~]#ll
total 30340
-rw-------. 1 root root 1506 Nov 17 15:32 anaconda-ks.cfg
-rw-r--r--. 1 root root 31057920 Mar 16 01:54 etc.iso
-rw-r--r--. 1 root root 1814 Nov 17 15:34 initial-setup-ks.cfg
[root@centos8 ~]#pwd
/root
[root@centos8 ~]#
USB介质:
[root@centos8 ~]#lsusb
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
[root@centos8 ~]#
范例:格式化U盘为 FAT32 文件系统
[root@centos8 ~]#dnf -y install dosfstools
[root@centos8 ~]#mkfs.vfat /dev/sdd1
mkfs.fat 4.1 (2017-01-24)
[root@centos8 ~]#mount /dev/sdd1 /mnt
dmesg:可以观察硬件设备变动的日志。 tail /var/log/messages -f 也可以
五、磁盘管理长用命令
文件系统空间占用等信息的查看工具df:
df [OPTION]... [FILE]...
常用选项
-H 以10为单位
-T 文件系统类型
-h human-readable 以二进制为单位
-i inodes instead of blocks
-P 以Posix兼容的格式输出
查看某目录总体空间占用状态du:
du [OPTION]... DIR
常用选项
-h human-readable
-s summary
--max-depth=# 指定最大目录层级
转换和复制一个文件dd:
格式:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
常用选项:
if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
ibs=size 一次读size个byte
obs=size 一次写size个byte
bs=size block size, 指定块大小(既是是ibs也是obs)
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 复制n个bs
conv=conversion[,conversion...] 用指定的参数转换文件
conversion 转换参数:
ascii 转换 EBCDIC 为 ASCII
ebcdic 转换 ASCII 为 EBCDIC
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreat 不创建输出文件
noerror 出错时不停止
notrunc 不截短输出文件
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
fdatasync 写完成前,物理写入输出文件
范例:
#备份MBR
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
#破坏MBR中的bootloader
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
#有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有
fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,实现如下
dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
#将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/dev/sdy
#将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx of=/path/to/image
#备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径
dd if=/dev/sdx | gzip >/path/to/image.gz
#将备份文件恢复到指定盘
dd if=/path/to/image of=/dev/sdx
#将压缩的备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx
#将内存里的数据拷贝到root目录下的mem.bin文件
dd if=/dev/mem of=/root/mem.bin bs=1024
#拷贝光盘数据到root文件夹下,并保存为cdrom.iso文件
dd if=/dev/cdrom of=/root/cdrom.iso
#销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1
#通过比较dd指令输出中命令的执行时间,即可确定系统最佳的block size大小
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/dev/zero of=/root/1Gb.file bs=2048 count=500000
dd if=/dev/zero of=/root/1Gb.file bs=4096 count=250000
#测试硬盘写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
#测试硬盘读速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
以上是关于swap空间管理和优化&&移动介质的主要内容,如果未能解决你的问题,请参考以下文章
swap function & copy-and-swap idiom