一个交换分区的简单管理软件swap-control-gui
Tofloor
poster avatar
MeowSprite
deepin
2016-12-28 22:22
Author
本帖最后由 MeowSprite 于 2017-7-11 14:46 编辑

内存不够?电脑经常卡死?快使用这个破软件来最大化利用你的内存。
介绍
这是一个简单的swap相关的功能管理软件。交换分区是什么呢?其实就是类似windows的虚拟内存,在内存不够的时候,用磁盘临时保存部分内存。常常有人说用chrome或者java程序,内存不够,系统卡死。其实系统卡死很大原因就是因为磁盘IO卡死的原因,这里面内存交换就会导致大量磁盘IO,或者内存频繁交换也导致的程序卡死。内核里有两个功能模块zswap和zram其实很很好增强交换分区功能。开启之后,电脑就不卡了,chrome开20+网页也不是梦了,什么IDE,java程序随心跑(吹的夸张些)。所以做了这么个gui程序,可以简单地开启和调整这两个内核模块功能。另外还有个交换文件的功能,可以动态调整交换空间的大小。

使用方法
通常想要调整交换文件的大小可以直接通过 交换文件页面 里的那个 拉拽条 或 自己输入 就好了。
调整好自己想要的配置,然后点击保存
之后点击上面重启swap服务,就可以看到显示效果了。
想看交换分区的效果,打开系统监视器-资源,就可以看到下面的交换分区的信息了。一定要记得,任何修改都要保存之后,点击重启swap服务才能生效

第一次安装
注意第一次安装,打开软件之后,请选择开机启动服务。然后点击重启swap服务,这样就不需要重启就可以启动管理服务了

下载
64位:swap-control.tar.gz32位:swap-control-32.tar.gz
安装:解压双击deb就可以安装
注意:64位系统千万不要安装32位的,不然后果自负啊。github有打包安装的说明,可以自己尝试打包。

功能介绍【之如果你只要调整交换文件大小看不看无所谓系列】
zswap
在windows下是不是见过一个叫内存压缩的进程。相对应的这是一个linux下实现的内存压缩技术,实现在ram中压缩内存来缓解内存不足,也避免了内存swap的io消耗。zswap其实是对交换分区的一个缓冲功能,就是不常用的内存页在内存紧张的时候会被交换到交换空间,但是这个技术就是在内存里开一个压缩区,本来要被交换出去的内存先放到压缩区缓存一下(说不定这内存页说不定又会马上被用到),当压缩区要满了,就把压缩区的东西真正交换出去腾空间。这个功能模块启动时已经被默认加载到内核里了。文档:https://www.kernel.org/doc/Documentation/vm/zswap.txt
  • 压缩池比例:就是你的压缩池的大小,默认是你内存的20%,最好也就在这左右吧
  • 存储池类型:通俗些就是存储池的格式
  • 压缩算法:就是选用的压缩算法

Zram
Zram其实是从内存创建一个独立的块设备的功能。通俗点zram是在内存里开了一块区域当硬盘来用,所以也可以拿来当swap分区咯。当然也有压缩的功能。但是这个模块还没有普遍被大家接受,系统也没有默认加载这个模块,但是点击启用该功能后后,会自己加载这个内核模块。
文档:https://www.kernel.org/doc/Documentation/blockdev/zram.txt
  • Zram大小:我设定不超过内存的一半了
  • Zram Streams:压缩时候使用几个CPU核心,默认是使用一个核心。
  • Zram算法:压缩算法

交换文件
就是普通的交换文件的功能,来取代交换分区的功能。
  • 交换文件大小:自己随心调整就好。
  • 动态交换文件:其实就是动态调整swap文件的大小。实现的方式是内存不够了,申请一块swap文件用用,又不够了,再申请一块用用。内存空出来了,那就释放删掉swap文件,就是比上面多了个动态申请释放的效果。

  • 交换块大小:每个swap文件块的大小
  • 最大块数:就是最多多少个swap文件块,所以动态交换文件最高承受能力是 交换块大小×最大块数
  • 触发比例:swap剩下多少空间的时候,触发申请新的swap块。
  • 启用交换分区:这个没用,还没作。
注意这里的交换文件大小(就是固定大小的交换文件)和下面的动态交换文件是可以并存的。
还有交换分区的控制还没作。默认是加载所有的swap设备。但是swap分区的优先级被默认调到了最低。

常见问题
问:zswap和zram能不能共存啊?都开好,还是只开一个好啊?
答:zswap和zram是两个不同的东西,一个是替交换空间做缓存,一个是用内存建交换空间,所以是可以共存的。按道理来说用一个就足够了,推荐开是zswap。

问:交换文件支不支持btfs啊?
答:交换文件不支持btfs(个人不用,也不会去测试),当然不知道btfs的就不用管了。

问:交换分区和交换文件什么区别啊?
答:个人觉得没有什么大区别,交换文件依赖于文件系统中,不能被多个系统共有。但是交换文件可以容易调整大小。

Github:







Reply Favorite View the author
All Replies
1 / 4
To page
MattD
deepin
2016-12-28 22:34
#1
我有个问题,LZ有没有加入文件系统检测机制?如果是全盘btrfs(或者/var挂载到了btrfs),就不能使用swapfile了。
Reply View the author
MeowSprite
deepin
2016-12-28 23:08
#2
https://bbs.deepin.org/post/133470
我有个问题,LZ有没有加入文件系统检测机制?如果是全盘btrfs(或者/var挂载到了btrfs),就不能使用swapfi ...

http://www.spinics.net/lists/linux-btrfs/msg28533.html
使用的是类似这种方法,将文件映射成loop设备,支持任何文件系统,大概吧,包括btrfs。
但是我没有真实地试过。
Reply View the author
kaile
deepin
2017-01-03 08:12
#3
本帖最后由 zxciddee 于 2017-1-3 00:13 编辑

不错,谢谢!
Reply View the author
Summving
deepin
2017-01-07 04:53
#4
厉害。建议收录到软件中心
Reply View the author
MeowSprite
deepin
2017-01-07 05:09
#5
https://bbs.deepin.org/post/133470
厉害。建议收录到软件中心

谢谢,但这东西现在也不算是一个成熟的东西,交换分区的控制还没有弄,而且这东西作为管理系统的工具也不是那么成熟,全当个人工具使用就好了。
Reply View the author
marsruc
deepin
2017-01-20 05:34
#6
zswap: zpool z3fold not available 这个怎么解决呢?zram正常
Reply View the author
MeowSprite
deepin
2017-01-20 05:45
#7
https://bbs.deepin.org/post/133470
zswap: zpool z3fold not available 这个怎么解决呢?zram正常

你这个输出是在哪输出的?
Reply View the author
marsruc
deepin
2017-01-20 05:47
#8
dmesg | grep 'zswap'
Reply View the author
Comments
MeowSprite
2017-01-20 06:00
谢谢提醒~
marsruc
deepin
2017-01-20 05:49
#9
dmesg | grep 'zswap'
[    2.470585] zswap: loaded using pool lzo/zbud
[   10.863199] zswap: zpool z3fold not available
Reply View the author
marsruc
deepin
2017-01-20 05:50
#10
dmesg | grep 'zram'
[   11.138874] zram: Added device: zram0
[   12.767440] zram0: detected capacity change from 0 to 671088640
[   14.200104] Adding 655356k swap on /dev/zram0.  Priority:32767 extents:1 across:655356k SSDscFS
Reply View the author
marsruc
deepin
2017-01-20 05:50
#11
zram应该没问题,没有了解过zswap,所以不知道是不是有什么问题
Reply View the author
MeowSprite
deepin
2017-01-20 05:59
#12

这个你修改下存储池类型保存重启服务就好了。因为默认的配置文件里,填了z3fold,结果没改回来。而且默认是开启zswap的,就弹出了这个提示。到时候把默认配置文件改回去。
Reply View the author
MeowSprite
deepin
2017-01-20 06:08
#13
https://bbs.deepin.org/post/133470
zram应该没问题,没有了解过zswap,所以不知道是不是有什么问题

其实开启如果配置错误,他会使用默认的配置,就是zswap: loaded using pool lz4/zbud,这种类型。
可以看:https://wiki.archlinux.org/index.php/Zswap
Reply View the author
marsruc
deepin
2017-01-20 06:08
#14
https://bbs.deepin.org/post/133470
这个你修改下存储池类型保存重启服务就好了。因为默认的配置文件里,填了z3fold,结果没改回来。而且默认 ...

如果同时启用zram的话,zswap的存储类型是不是最好就用zsmalloc了?这就能配合起来了。zsmalloc是zram压缩内存的接口
Reply View the author
marsruc
deepin
2017-01-20 06:13
#15
https://bbs.deepin.org/post/133470
其实开启如果配置错误,他会使用默认的配置,就是zswap: loaded using pool lz4/zbud,这种类型。
可以看 ...

修改重启后,问题好了。采用zsmalloc的方法,看了下资料这个就是zram的接口。能够配合起来。所以如果启用zram的话,最好用zsmalloc的这个选项。
Reply View the author
MeowSprite
deepin
2017-01-20 06:14
#16
https://bbs.deepin.org/post/133470
如果同时启用zram的话,zswap的存储类型是不是最好就用zsmalloc了?这就能配合起来了。zsmalloc是zram压 ...

zram跟zswap没有直接的关联,zsmalloc和zbud也只是内存页的管理方式不同。
zram是创建一个swap设备,而zswap是对swap设备添加缓存功能。所以可以共存。
Reply View the author
MeowSprite
deepin
2017-01-20 06:18
#17
https://bbs.deepin.org/post/133470
修改重启后,问题好了。采用zsmalloc的方法,看了下资料这个就是zram的接口。能够配合起来。所以如果启用 ...

你这个资料可以共享给我看一下吗?发下链接
Reply View the author
marsruc
deepin
2017-01-20 06:20
#18
那就是说,这样理解:内存<>zswap内存压缩交换区zram内存压缩文件系统
Reply View the author
marsruc
deepin
2017-01-20 06:27
#19
csdn的一个博客连载的: Linux内核工程导论——内存管理
Reply View the author
marsruc
deepin
2017-01-20 06:27
#20
http://blog.csdn.net/ljy1988123/article/details/47983195#t21
Reply View the author
1 / 4
To page