一个交换分区的简单管理软件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
2 / 4
To page
marsruc
deepin
2017-01-20 06:37
#21
本帖最后由 marsruc 于 2017-1-19 22:40 编辑

刚刚测试了一下,不开zswap和zram的情况下,2g内存,开超过8个chrome门户首页的页面,系统就卡死不动了,鼠标都无法移动,桌面卡死了。开启zswap和zram的情况下,轻松开了30个网址导航站各类网站的首页。一点都不卡。随便切换tab页面。
Reply View the author
marsruc
deepin
2017-01-20 06:39
#22
建议深度对于小内存的机器,自动给用户开启并配置好这2个选项。一般用户的多开chrome死得很快,就无故卡死了。
Reply View the author
marsruc
deepin
2017-01-20 06:43
#23
浏览器web页面多开是普通用户的典型环境。比如看新闻,视频,淘宝,开二三十个页面是很正常的。开启后,这点是用户强感知的效果。绝对不卡机。我看论坛看到好多用户都说开chrome卡,大家的建议都是加内存。实际上开启这2个功能后,完全解决普通用户的网页浏览需求。
Reply View the author
MeowSprite
deepin
2017-01-20 06:51
#24
本帖最后由 MeowSprite 于 2017-1-19 23:07 编辑

zsmalloc只是内核的一个内存分配器,类似C语言里的malloc,并不是zram与zswap之间的什么接口。zbud也是一类内存分配器。两者具体区别看上面的zswap内核文档。zram的内存申请就只是使用zsmalloc。
zram是分配一块内存用来作为swap设备,而zswap是分配一块内存作为缓存区。所以两者并没有直接关系。
http://lxr.free-electrons.com/so ... ion/vm/zsmalloc.txt
Reply View the author
marsruc
deepin
2017-01-20 07:02
#25
刚刚测试了一下,同时开10个腾讯体育的视频播放页面,同时播放略卡顿,但是还能操作控制,不影响使用。
Reply View the author
kannan22
deepin
2017-01-24 16:48
#26
https://bbs.deepin.org/post/133470
刚刚测试了一下,不开zswap和zram的情况下,2g内存,开超过8个chrome门户首页的页面,系统就卡死不动了,鼠 ...

这么给力,让人很惊喜么
我IDE开发工具也要试试了啊
Reply View the author
markson
deepin
2017-02-22 05:29
#27
建议楼主传PPA
Reply View the author
markson
deepin
2017-02-28 04:16
#28
楼主可以把这个提交到Deepin的,Deepin15.4开始用文件取代交换分区
Reply View the author
MeowSprite
deepin
2017-03-01 03:05
#29
https://bbs.deepin.org/post/133470
楼主可以把这个提交到Deepin的,Deepin15.4开始用文件取代交换分区

这个deepin团队自己也能做到。至于他们不用这些技术,也有他们自己的原因的吧。
Reply View the author
makkon
deepin
2017-03-10 10:25
#30
本帖最后由 makkon 于 2017-3-10 03:14 编辑

Good afternoon, prompt please how to install

1. $ sudo /home/q/Downloads/swap-control-gui-master/package.sh
for q:
INFO: File /home/q/Downloads/swap-control-gui-master/systemd-swap-gui0.1.0//etc/systemd/swap.conf already exists
INFO: New config saved as /home/q/Downloads/swap-control-gui-master/systemd-swap-gui0.1.0//etc/systemd/swap.conf.new
ERRO: No built swap-control, please make sure swap-control in the folder Abort!

2. root@q-pc:~#  /home/q/Downloads/swap-control-gui-master/package.sh
INFO: File /home/q/Downloads/swap-control-gui-master/systemd-swap-gui0.1.0//etc/systemd/swap.conf already exists
INFO: New config saved as /home/q/Downloads/swap-control-gui-master/systemd-swap-gui0.1.0//etc/systemd/swap.conf.new
ERRO: No built swap-control, please make sure swap-control in the folder Abort!
root@q-pc:~#
Thank you for your great work!
Reply View the author
MeowSprite
deepin
2017-03-10 17:34
#31
https://bbs.deepin.org/post/133470
Good afternoon, prompt please how to install

1. $ sudo /home/q/Downloads/swap-control-gui-master/pa ...

I have provided a deb package for deepin 15.3. please check out the attachment in the post.
if you use other linux distributions, follow the readme in the github to package by yourself.
So you should compile the qt project first. There should be a executable file named swap-control before packaging.
Reply View the author
makkon
deepin
2017-03-19 19:59
#32
Edited by makkon at 2017-3-19 12:10

I installed swap-control-gui. Zram works fine and the SSD is protected. I wanted to translate the interface, but is not found a language file.
Reply View the author
MeowSprite
deepin
2017-03-20 04:49
#33
https://bbs.deepin.org/post/133470
Edited by makkon at 2017-3-19 12:10

I installed swap-control-gui. Zram works fine and the SSD is  ...

I updated the project with traslation support. You can find the language file in 'translations' folder and try to translate it.
Reply View the author
rosten
deepin
2017-03-20 05:19
#34
不错不错,下载先用
Reply View the author
makkon
deepin
2017-03-20 15:00
#35
Edited by makkon at 2017-3-20 07:38

You have submitted a file to download -  swap-control.tar.gz- is there a change?
Please, update the file   swap-control.tar.gz.
Where and which file is for translation of Chinese into En ...
Thank you!
Reply View the author
MeowSprite
deepin
2017-03-21 03:32
#36
本帖最后由 MeowSprite 于 2017-3-20 19:34 编辑
https://bbs.deepin.org/post/133470
Edited by makkon at 2017-3-20 07:38

You have submitted a file to download -  swap-control.tar.gz- ...

swap-control.tar.gz is a new version package. If you want to translate it,  you can download the 'translations' folder  from the github project, and open en_US.ts file with qt linguist tool to translate it, then run the release.sh to generate en_US.qm file. Then copy en_US.qm to the /usr/share/swap-control/translations/.
If you want to translate to other lang, get the locale name by
  1. echo $LANGUAGE
Copy the Code

Then just rename the en_US.ts file and translate it.
Reply View the author
marsruc
deepin
2017-04-04 23:55
#37
楼主能否,把最新版本重新打个 deb 包?上传一份附件呢。
Reply View the author
marsruc
deepin
2017-04-04 23:56
#38
回头加微信,我给楼主发红包
Reply View the author
MeowSprite
deepin
2017-04-05 00:28
#39
https://bbs.deepin.org/post/133470
楼主能否,把最新版本重新打个 deb 包?上传一份附件呢。

没怎么更新啊,只要功能正常使用就没更新了。帖子里的附件已经是最新了
Reply View the author
marsruc
deepin
2017-04-05 06:19
#40
记得你说过有些小bug,修正了么?
Reply View the author
2 / 4
To page