Linux虚拟内存(swap)调优篇 您所在的位置:网站首页 deepin设置swap Linux虚拟内存(swap)调优篇

Linux虚拟内存(swap)调优篇

2023-11-01 00:43| 来源: 网络整理| 查看: 265

        Linux虚拟内存(swap)调优篇-“swappiness”,“vm.dirty_background_ratio”和“vm.dirty_ratio”

                                             作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

  我的kafka集群在上线一段时间后,发现内存使用达到峰值时系统开始使用swap。在swap的过程中系统性能会有所下降,表现为较大的服务延迟。对这种情况,可以通过调节swappiness内核参数降低系统对swap的使用,从而避免不必要的swap对性能造成的影响。接下来,我们就一起学习一下如何调优该参数吧!

 

一.创建交换分区

1>.什么是虚拟内存

  如果物理内存不够用时,可以将那些最近很少使用的页面数据(Page)置换出去,即切换到硬盘上,但是要注意的是内存文件的格式和硬盘中文件的格式是不一样的,所以这个分区必须格式化成跟内存兼容的模式不能转换成文件的格式。以便把内存的page直接存入这个分区,方便内存直接调用。而这个页面(page)数据对于32位的操作系统一个page大概是4K左右,对于64位操作系统这个page大小是可变的,4k-2M的大小都是比较常见的。事实上到底能使用多大的页面(page)取决于CPU而不取决于内存哟!这就是虚拟内存的概念。在linux上我们称之为交换分区。记住,虚拟内存必须是一个单独的分区。

2>.虚拟内存能代替物理内存运行程序吗?

  答案是否定的,只是使用虚拟内存暂时保存数据,而不是代替物理内存运行程序。 

3>.虚拟内存的作用

  当运行某个大程序、大游戏,需要的内存超过空闲内存但小于物理内存总量时,会暂时把内存里这些数据放到磁盘上的虚拟内存里,空出物理内存运行游戏。等退出游戏后,又会把虚拟内存里的东西读出来,放回物理内存。所以,虚拟内存,并不是用来虚拟物理内存的,而是暂存数据的。如果对内存的需求大于物理内存总量,那虚拟内存设多大都不管用。电脑内存太低,根本的方法还是增加物理内存,才能流畅。虚拟内存机制上就不管用,即使管用,比物理内存低100倍的速度,也管不上什么实际的作用。所以,虚拟内存大了是没用的,反而白占用磁盘空间。

4>.交换分区常用的参数介绍

交换分区: mkswap 格式化为虚拟内存 -L label 指定卷标 swapon 启动虚拟内存 -a 启动所有的虚拟分区 -p:指定优先级 swapoff 关闭虚拟内存 更多参数请参考man mkswap

5>.案例实操-创建交换分区的步骤

[root@yinzhengjie ~]# fdisk /dev/sdb #对第二块硬盘进行分区调整 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): p #查看当前分区情况 Disk /dev/sdb: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x8614a108 Device Boot Start End Blocks Id System /dev/sdb1 1 132 1060258+ 83 Linux /dev/sdb2 133 264 1060290 83 Linux /dev/sdb3 265 526 2104515 83 Linux /dev/sdb4 527 1305 6257317+ 5 Extended /dev/sdb5 527 919 3156741 83 Linux /dev/sdb6 920 1181 2104483+ 83 Linux #我想讲第6个分区弄成交换分区。 Command (m for help): t #调整分区ID Partition number (1-6): 6 #选择分区编号为6 Hex code (type L to list codes): L #查看分区类型所对应的ID号,我们发现“82”就是交换分区的编号 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有