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

3、创建swap文件系统

​[root@centos8 ~]#mkswap /dev/sdc1​

​Setting up swapspace version 1, size = 4 GiB (4294942720 bytes)​

​no label, UUID=b68bd6a2-208b-4f05-860b-a75e71492586​

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分区与swap性能优化

swap function & copy-and-swap idiom

Linux 交换空间优化(swap 优化)(积极使用交换空间占比,可能会使程序运行缓慢!)

swap分区的创建

Linux磁盘管理进阶

Linux释放SWAP空间