swap交换分区
swap分区是一块特殊的硬盘空间,当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换内存中,从而使当前的程序腾出更多的内存量。
使用swap交换分区作用是,通过操作系统的调取,程序可以用到的内存远超过实际物理内存。磁盘价格要比内存便宜的多,因此使用swap交换空间是很实惠的,但是由于频繁的读写硬盘,这种方式会降低系统运行效率。
swap分区大小,根据物理内存大小和硬盘容量计算
swap交换空间只是用来应急的,容量分配要适量
- 内存小于1G,必须用swap提升内存使用量,否则运行不了几个应用
- 内存使用过多的应用,如视频制作等,使用swap防止内存不足,导致的软件崩溃
- 电脑休眠、内存数据断电丢失,因此将内存数据暂时存入swap交换空间,电脑休眠回复后,数据从swap读入内存,继续工作
centos建议分配swap
- 内存小于2G,swap分配等同内存大小空间
- 内存大于2G,分配2G交换空间
创建swap分区
第一步:先分区 fdisk
[root@junwu_server ~]# fdisk /dev/sdb WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command.
#只有一个分区,默认就是1
Command (m for help): t Selected partition 1 Partition type (type L to list all types): 19 #修改分区类型 Changed type of partition 'Plan 9 partition' to 'Linux swap' Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: gpt Disk identifier: 2FF10D5B-F3CF-438A-AC06-805A3B5630CB # Start End Size Type Name 1 2048 1026047 500M Linux swap
第二步:格式化(swap命令不同,是mkswap)
[root@junwu_server ~]# mkswap /dev/sdb1 Setting up swapspace version 1, size = 511996 KiB no label, UUID=3c8f01e2-43a0-4b13-ab1a-03f8f7ca3b23 [root@junwu_server ~]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs 4ff42a0c-a9c5-41c6-b5c2-ef28a4a5540b /boot ├─sda2 swap 6a392a74-cd56-4d74-b186-e838a29ff17a [SWAP] └─sda3 xfs 9d5d7859-2a23-4b89-b177-74ddb3cd50b1 / sdb └─sdb1 swap 3c8f01e2-43a0-4b13-ab1a-03f8f7ca3b23 sdc └─sdc1 xfs bccba882-a066-4fc3-8980-9dc28046ad74 sr0 iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00
第三步:使用swap分区 swapon开启交换分区、swapoff关闭交换分区
#使用free查看内存和 swap 分区的使用情况
[root@junwu_server ~]# free -h total used free shared buff/cache available Mem: 972M 154M 702M 7.7M 115M 686M Swap: 799M 0B 799M #开启交换分区 [root@junwu_server ~]# swapon /dev/sdb1 [root@junwu_server ~]# free -h total used free shared buff/cache available Mem: 972M 154M 702M 7.7M 115M 686M Swap: 1.3G 0B 1.3G
buff和cache
- buffers,缓冲,buffers是给写入数据加速的,指写入数据时,把分散的写入操作保存到内存,达到一定程度集中写入硬盘,减少磁盘碎片,以及反复的寻道时间,加速数据写入。
- Cached,缓存,Cached是给读取数据时加速的,指把读取出来的数据保存在内存中,再次读取,不用读取硬盘而直接从内存中读取,加速数据读取过程。
我的内存被吃了
1、物理内存不足:
[root@junwu_server ~]# du -h --max-depth=1 4.0K ./junwu 0 ./data 20M ./nginx-1.23.3 0 ./.pki 4.0K ./.config 3.7M ./.cache 16K ./.ssh 50M ./Discuz 76M .
2、运行内存不足。电脑无故提示内存不足,监控报警,新程序无法运行,都是运行内存不足,可能要释放cache缓存
释放缓存区的内存 1)清理pagecache(页面缓存) [root@backup ~]# echo 1 > /proc/sys/vm/drop_caches 或者 # sysctl -w vm.drop_caches=1 2)清理dentries(目录缓存)和inodes [root@backup ~]# echo 2 > /proc/sys/vm/drop_caches 或者 # sysctl -w vm.drop_caches=2 3)清理pagecache、dentries和inodes [root@backup ~]# echo 3 > /proc/sys/vm/drop_caches 或者 # sysctl -w vm.drop_caches=3 上面三种方式都是临时释放缓存的方法,要想永久释放缓存,需要在/etc/sysctl.conf文件中配置:vm.drop_caches=1/2/3,然后sysctl -p生效即可! 另外,可以使用sync命令来清理文件系统缓存,还会清理僵尸(zombie)对象和它们占用的内存 sync:将内存缓冲区内的数据写入磁盘。 [root@backup ~]# sync
df -T 列出的是文件系统的可用空间
du -h
统计文件、目录磁盘使用情况
只有经历过生活的苦难
才会更加努力去生活
自己梦想的一切
更加需要自己脚踏实地的去践行
结果未必尽如人意
但是路途中的努力
一定比结果更加美丽
----by ljw