简单地测了下zswap,对系统性能的提升确实有帮助

各种窗口管理器和美化相关
回复
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

简单地测了下zswap,对系统性能的提升确实有帮助

#1

帖子 kashu » 2016-04-25 22:05

环境:Xubunbu 14.04.4 LTS 64-bit
使用同一台物理电脑,测试是在相同的硬件环境中进行的。
由于笔记本内存有12GB,测试起来不太方便,也不想拆内存,所以开机机时,在内核中临时加入参数并限制内存为2GB
注:在/etc/sysctl.conf中,始终是这样设置的:vm.swappiness=0


测试情景1:最大内存 2GB,不开启zswap
首先,在一个干净的开机动作完成后并进入到桌面,先静置操作系统3分钟,什么也不动,并查看内存使用情况如下:

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1538        460        303         50       1157
-/+ buffers/cache:        331       1668
Swap:          976          0        976
接着,只打开一个chromium浏览器(我安装的7个Extentions也在运行。内存猛兽)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1731        268        351         50        993
-/+ buffers/cache:        687       1312
Swap:          976          0        976
然后,依次打开5个不同的网站(当打开第5个时,系统开始出现卡顿,并在此时,内存数据才开始swap out到硬盘的swap分区。这些网站分别是A、B、C、D、E)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1724        274        510          0        598
-/+ buffers/cache:       1126        872
Swap:          976        148        828


测试情景2:最大内存 2GB,开启了zswap,使用lz4 compressor,25%(2048MB*0.25=512MB)的最大内存作为zswap的pool
首先,在一个干净的开机动作完成后并进入到桌面,先静置操作系统3分钟,什么也不动,并查看内存使用情况如下:

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1410        588        176         50       1030
-/+ buffers/cache:        330       1669
Swap:          976          0        976
接着,只打开一个chromium浏览器(我安装的7个Extentions也在运行。内存猛兽)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1789        209        227         51       1013
-/+ buffers/cache:        724       1275
Swap:          976          0        976
然后,依次打开7个不同的网站(当打开第7个时,系统开始出现卡顿,并在此时,内存数据才开始swap out到硬盘的swap分区。这些网站分别是A、B、C、D、E、F、G)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999        518       1480         86          2        159
-/+ buffers/cache:        356       1643
Swap:          976        326        650
此时,查看zswap的一些信息如下(没看懂,有谁帮忙解释下这些数值应该如何理解,谢谢)

代码: 全选

kashu:~$ sudo grep -R . /sys/kernel/debug/zswap/
[sudo] password for kashu: 
/sys/kernel/debug/zswap/stored_pages:45016
/sys/kernel/debug/zswap/pool_total_size:114397184
/sys/kernel/debug/zswap/duplicate_entry:0
/sys/kernel/debug/zswap/written_back_pages:0
/sys/kernel/debug/zswap/reject_compress_poor:9824
/sys/kernel/debug/zswap/reject_kmemcache_fail:0
/sys/kernel/debug/zswap/reject_alloc_fail:0
/sys/kernel/debug/zswap/reject_reclaim_fail:0
/sys/kernel/debug/zswap/pool_limit_hit:0
再接着,卡顿一会就变好了,再打开第8个不同的网站……还能以很流畅的状态维继着,不同的网页之间切换着查看也很自如。

上面的测试相当简单/粗糙,但已经可以说明zswap对系统性能的提升确实是有明显的帮助。
有谁有更好、更全面的测试方法可以推荐一下?谢谢!


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#2

帖子 rosynirvana » 2016-04-25 22:46

现代桌面+现代浏览器+用2GB内存,这属于碰瓷式测试
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#3

帖子 kashu » 2016-04-25 23:02

rosynirvana 写了:现代桌面+现代浏览器+用2GB内存,这属于碰瓷式测试
其实我也不太清楚怎么测会比较好一点。我看别人测的时候,用的是1GB的内存(http://www.hecticgeek.com/2013/11/zswap ... ss-ubuntu/),我觉得1GB有点少,一下就用没了,所以感觉用2GB测会好点
怎么测会好点?您有什么好的建议吗?


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#5

帖子 科学之子 » 2016-04-28 23:41

vm.swappiness=100还会卡吗?
试下这个脚本
viewtopic.php?f=21&t=476869
看还会卡吗?
不确定zswap是否可以并行,也许是单线程导致的卡?
其实我也不确定zram是否可以并行,虽然zram本身逻辑上能并行,但底层的实现结构并非连续.
zram用vzalloc分配的是逻辑上连续的内存,底层还是映射什么的,不确定是否真的能并行
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#6

帖子 kashu » 2016-04-29 0:00

科学之子 写了:vm.swappiness=100还会卡吗?
试下这个脚本
viewtopic.php?f=21&t=476869
看还会卡吗?
不确定zswap是否可以并行,也许是单线程导致的卡?
其实我也不确定zram是否可以并行,虽然zram本身逻辑上能并行,但底层的实现结构并非连续.
zram用vzalloc分配的是逻辑上连续的内存,底层还是映射什么的,不确定是否真的能并行
感谢您分享的这个脚本。
如果要测试对比zram和zswap之间有多少效果上的差异/差距,肯定得要有具体的数值数据来作比较准确的分析和对比才行。

但,我目前没有比较好的测试方法或工具,所以,我只能仅凭着自己的使用感受做出一个大概的判断。
因此,现在我也不好去做您这个测试对比。


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#7

帖子 科学之子 » 2016-04-29 0:07

kashu 写了:
科学之子 写了:vm.swappiness=100还会卡吗?
试下这个脚本
viewtopic.php?f=21&t=476869
看还会卡吗?
不确定zswap是否可以并行,也许是单线程导致的卡?
其实我也不确定zram是否可以并行,虽然zram本身逻辑上能并行,但底层的实现结构并非连续.
zram用vzalloc分配的是逻辑上连续的内存,底层还是映射什么的,不确定是否真的能并行
感谢您分享的这个脚本。
如果要测试对比zram和zswap之间有多少效果上的差异/差距,肯定得要有具体的数值数据来作比较准确的分析和对比才行。

但,我目前没有比较好的测试方法或工具,所以,我只能仅凭着自己的使用感受做出一个大概的判断。
因此,现在我也不好去做您这个测试对比。
量化的话,我想到的一个方法是将测试过程用shell脚本自动化,然后time命令计时脚本的耗时.
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#8

帖子 kashu » 2016-04-29 0:16

科学之子 写了: 量化的话,我想到的一个方法是将测试过程用shell脚本自动化,然后time命令计时脚本的耗时.
计时只是一方面吧,由于系统启用了zswap或zram之后,内存的使用率是以一种“非常规化的”动态变化着,这也得实时监测着并且有使用数据能量化出来,当然,还有CPU使用情况(因为zram/zswap的压缩需要CPU资源)

而且这个测试很烦琐,我这人现在有点懒,不想折腾了……
1.得先测试无zswap和无zram的情况
2.再测只有zswap的情况
3.再测只有zram的情况
4.量化出来的数据整理分析/对比
……
如果有可能是不是还有zswap和zram混合使用的情景,不太清楚

但实际目的只有一个,想找出一种最好用、效果最佳、同时最符合自己日常使用情景的方法,最后加以应用到自己的桌面操作系统上。系统调优这东西是相当相当变化的……


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#9

帖子 科学之子 » 2016-04-29 0:36

kashu 写了:
科学之子 写了: 量化的话,我想到的一个方法是将测试过程用shell脚本自动化,然后time命令计时脚本的耗时.
计时只是一方面吧,由于系统启用了zswap或zram之后,内存的使用率是以一种“非常规化的”动态变化着,这也得实时监测着并且有使用数据能量化出来,当然,还有CPU使用情况(因为zram/zswap的压缩需要CPU资源)

而且这个测试很烦琐,我这人现在有点懒,不想折腾了……
1.得先测试无zswap和无zram的情况
2.再测只有zswap的情况
3.再测只有zram的情况
4.量化出来的数据整理分析/对比
……
如果有可能是不是还有zswap和zram混合使用的情景,不太清楚

但实际目的只有一个,想找出一种最好用、效果最佳、同时最符合自己日常使用情景的方法,最后加以应用到自己的桌面操作系统上。系统调优这东西是相当相当变化的……
而且这个测试很烦琐,我这人现在有点懒,不想折腾了
楼主终于醒悟了 :em04
我们又不是内核开发者,直接感觉卡不卡就行了,感觉不出来就随便用个好了

当然,出于开源或极客精神进行测试,还是值得鼓励的
哪天要是我有精力了也去试试
目前打算折腾折腾Arch Linux,改善自己太过Linux小白的现状.
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#10

帖子 科学之子 » 2016-04-29 1:04

此时,查看zswap的一些信息如下(没看懂,有谁帮忙解释下这些数值应该如何理解,谢谢)

代码: 全选

kashu:~$ sudo grep -R . /sys/kernel/debug/zswap/
[sudo] password for kashu: 
/sys/kernel/debug/zswap/stored_pages:45016
/sys/kernel/debug/zswap/pool_total_size:114397184
/sys/kernel/debug/zswap/duplicate_entry:0
/sys/kernel/debug/zswap/written_back_pages:0
/sys/kernel/debug/zswap/reject_compress_poor:9824
/sys/kernel/debug/zswap/reject_kmemcache_fail:0
/sys/kernel/debug/zswap/reject_alloc_fail:0
/sys/kernel/debug/zswap/reject_reclaim_fail:0
/sys/kernel/debug/zswap/pool_limit_hit:0
我也谷歌半天没结果,突然想到内核代码中可能有相关注释
于是把楼主的提供的部分文件名用grep -r的方式在内核代码里搜索了一番
可以看Linux内核代码中的mm/zswap.c的注释:

代码: 全选

/* Pool limit was hit (see zswap_max_pool_percent) */
static u64 zswap_pool_limit_hit;
/* Pages written back when pool limit was reached */
static u64 zswap_written_back_pages;
/* Store failed due to a reclaim failure after pool limit was reached */
static u64 zswap_reject_reclaim_fail;
/* Compressed page was too big for the allocator to (optimally) store */
static u64 zswap_reject_compress_poor;
/* Store failed because underlying allocator could not get memory */
static u64 zswap_reject_alloc_fail;
/* Store failed because the entry metadata could not be allocated (rare) */
static u64 zswap_reject_kmemcache_fail;
/* Duplicate store was encountered (rare) */
static u64 zswap_duplicate_entry;

代码: 全选

debugfs_create_u64("pool_limit_hit", S_IRUGO,
			zswap_debugfs_root, &zswap_pool_limit_hit);
	debugfs_create_u64("reject_reclaim_fail", S_IRUGO,
			zswap_debugfs_root, &zswap_reject_reclaim_fail);
	debugfs_create_u64("reject_alloc_fail", S_IRUGO,
			zswap_debugfs_root, &zswap_reject_alloc_fail);
	debugfs_create_u64("reject_kmemcache_fail", S_IRUGO,
			zswap_debugfs_root, &zswap_reject_kmemcache_fail);
	debugfs_create_u64("reject_compress_poor", S_IRUGO,
			zswap_debugfs_root, &zswap_reject_compress_poor);
	debugfs_create_u64("written_back_pages", S_IRUGO,
			zswap_debugfs_root, &zswap_written_back_pages);
	debugfs_create_u64("duplicate_entry", S_IRUGO,
			zswap_debugfs_root, &zswap_duplicate_entry);
	debugfs_create_u64("pool_total_size", S_IRUGO,
			zswap_debugfs_root, &zswap_pool_total_size);
	debugfs_create_atomic_t("stored_pages", S_IRUGO,
			zswap_debugfs_root, &zswap_stored_pages);
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#11

帖子 kashu » 2016-04-29 5:53

科学之子 写了: 我也谷歌半天没结果,突然想到内核代码中可能有相关注释
于是把楼主的提供的部分文件名用grep -r的方式在内核代码里搜索了一番
可以看Linux内核代码中的mm/zswap.c的注释:
谢谢,虽然大部分我都没看懂…… :em03



现在在网上不太容易找到zswap和zram的对比测试或类似于这样的信息。
如果有谁做过这种对比测试或有这样的对比测试资料/文档愿意分享出来,那再好不过了。

我之前在网上看到一个,但该作者的测试显然是有问题的
http://nerdbynature.de/s9y/2015/08/29/M ... -with-ZRAM

1、他启用zswap时没指定zswap.max_pool_percent是多少,因此,以他241MB的物理内存来算的话,zpool最大只会使用默认的20%的物理内存大小,即:241*20%=48.2MB
因此,他测下来了,可以看到/sys/kernel/debug/zswap/pool_total_size:50696192,即,刚好是:50696192/1024/1024=48.3476MB

2、他后面启用zram时,设置的zram却是128MB的物理内存。

因此,他的这个测试基本上没有可比性。也就没法从他的测试中佐证出孰优孰劣。
但是,他最终却认为zram要更好……可能是他在文中所提到的这样一个优点:“因为zram的设置不用重启就可以用,但zswap设置后却要重启才能生效”(但实际上,在系统正在运行中,也能临时启用/关闭zswap)



下面再加几句我个人的看法:
由于zram很早就出现了并且能加以使用了,但zswap却是在2013年9月才开始被加入到Linux 3.11内核中。因此,你可能用不了zswap,但应该能用zram(这应该是zram明显的一个优势)。很多智能手机中很早地就在使用zram了,并且Google的Chromebook也使用了zram来取代swap。
当然,在我个人还没看到zram和zswap的测试对比结果前,我现在也只能简单地认为zram是zswap的长辈,zram优先被广泛使用、更被大众所认知,是很正常的。到底是初生的牛犊更猛,亦或是姜还是老的辣,我现在不知道,我现在也不倾向任何一个。
之前我看过Bob Liu(多年linux kernel开发经验)的一个视频(http://www.infoq.com/cn/presentations/m ... disk-speed),在服务器上他应该是更推荐使用zswap,而不是zram。我笔记本上的Xubuntu 14.04.4 LTS正好也启用了zswap(我这里不是在强调谁好谁坏,目前我更愿意简单地认为是它们有不同的适用场景而已)。同时,根据他视频中所介绍的,我个人大胆地猜测了一把,如果zram/zswap的开发人员愿意并且他们能积极主动、活跃一点,我觉得将来zswap和zram可能只会留下一个(仅仅是猜测)。

但话又说回来,代码是人写的,随着时间的推移和代码的不断演化,昨天我们看到的“权威文档”上所写的性能差、不好用,可能就随着今天新代码的发布,完全扭转甚至反超了也说不定呢。 :em01


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#12

帖子 科学之子 » 2016-04-30 14:31

上面的测试相当简单/粗糙,但已经可以说明zswap对系统性能的提升确实是有明显的帮助。
有谁有更好、更全面的测试方法可以推荐一下?谢谢!
今天想到搜索shell申请内存
好像可以用tmpfs来简化测试过程?
交换设备速度测试方法
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#13

帖子 科学之子 » 2016-05-16 18:21

楼主如果担心SSD写入的话需要警惕这些:
reject_compress_poor(压缩效果差)
reject_alloc_fail(分配失败)
不论zpool多大,是否填满,只要分配失败或压缩效果差就write-back到swap设备

实际上reject_alloc_fail基本上等同于reject_compress_poor
它俩分开主要是因为zbud和zsmalloc分配失败时返回值的名字不同,但实际情况下原因基本相同,就是分配器无法处理相应申请;
无法处理的原因在实际情况下绝大多数情况就是因为压缩太差,而分配器在设计上没有处理这种页面的代码,于是只能返回失败.
头像
omaidb
帖子: 104
注册时间: 2010-06-13 4:04

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#14

帖子 omaidb » 2016-11-05 9:31

kashu 写了:环境:Xubunbu 14.04.4 LTS 64-bit
使用同一台物理电脑,测试是在相同的硬件环境中进行的。
由于笔记本内存有12GB,测试起来不太方便,也不想拆内存,所以开机机时,在内核中临时加入参数并限制内存为2GB
注:在/etc/sysctl.conf中,始终是这样设置的:vm.swappiness=0


测试情景1:最大内存 2GB,不开启zswap
首先,在一个干净的开机动作完成后并进入到桌面,先静置操作系统3分钟,什么也不动,并查看内存使用情况如下:

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1538        460        303         50       1157
-/+ buffers/cache:        331       1668
Swap:          976          0        976
接着,只打开一个chromium浏览器(我安装的7个Extentions也在运行。内存猛兽)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1731        268        351         50        993
-/+ buffers/cache:        687       1312
Swap:          976          0        976
然后,依次打开5个不同的网站(当打开第5个时,系统开始出现卡顿,并在此时,内存数据才开始swap out到硬盘的swap分区。这些网站分别是A、B、C、D、E)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1724        274        510          0        598
-/+ buffers/cache:       1126        872
Swap:          976        148        828


测试情景2:最大内存 2GB,开启了zswap,使用lz4 compressor,25%(2048MB*0.25=512MB)的最大内存作为zswap的pool
首先,在一个干净的开机动作完成后并进入到桌面,先静置操作系统3分钟,什么也不动,并查看内存使用情况如下:

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1410        588        176         50       1030
-/+ buffers/cache:        330       1669
Swap:          976          0        976
接着,只打开一个chromium浏览器(我安装的7个Extentions也在运行。内存猛兽)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1789        209        227         51       1013
-/+ buffers/cache:        724       1275
Swap:          976          0        976
然后,依次打开7个不同的网站(当打开第7个时,系统开始出现卡顿,并在此时,内存数据才开始swap out到硬盘的swap分区。这些网站分别是A、B、C、D、E、F、G)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999        518       1480         86          2        159
-/+ buffers/cache:        356       1643
Swap:          976        326        650
此时,查看zswap的一些信息如下(没看懂,有谁帮忙解释下这些数值应该如何理解,谢谢)

代码: 全选

kashu:~$ sudo grep -R . /sys/kernel/debug/zswap/
[sudo] password for kashu: 
/sys/kernel/debug/zswap/stored_pages:45016
/sys/kernel/debug/zswap/pool_total_size:114397184
/sys/kernel/debug/zswap/duplicate_entry:0
/sys/kernel/debug/zswap/written_back_pages:0
/sys/kernel/debug/zswap/reject_compress_poor:9824
/sys/kernel/debug/zswap/reject_kmemcache_fail:0
/sys/kernel/debug/zswap/reject_alloc_fail:0
/sys/kernel/debug/zswap/reject_reclaim_fail:0
/sys/kernel/debug/zswap/pool_limit_hit:0
再接着,卡顿一会就变好了,再打开第8个不同的网站……还能以很流畅的状态维继着,不同的网页之间切换着查看也很自如。

上面的测试相当简单/粗糙,但已经可以说明zswap对系统性能的提升确实是有明显的帮助。
有谁有更好、更全面的测试方法可以推荐一下?谢谢!

zswap怎么安装,谢谢
无涯书僧,Google一下
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: 简单地测了下zswap,对系统性能的提升确实有帮助

#15

帖子 科学之子 » 2016-11-05 23:43

omaidb 写了:
kashu 写了:环境:Xubunbu 14.04.4 LTS 64-bit
使用同一台物理电脑,测试是在相同的硬件环境中进行的。
由于笔记本内存有12GB,测试起来不太方便,也不想拆内存,所以开机机时,在内核中临时加入参数并限制内存为2GB
注:在/etc/sysctl.conf中,始终是这样设置的:vm.swappiness=0


测试情景1:最大内存 2GB,不开启zswap
首先,在一个干净的开机动作完成后并进入到桌面,先静置操作系统3分钟,什么也不动,并查看内存使用情况如下:

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1538        460        303         50       1157
-/+ buffers/cache:        331       1668
Swap:          976          0        976
接着,只打开一个chromium浏览器(我安装的7个Extentions也在运行。内存猛兽)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1731        268        351         50        993
-/+ buffers/cache:        687       1312
Swap:          976          0        976
然后,依次打开5个不同的网站(当打开第5个时,系统开始出现卡顿,并在此时,内存数据才开始swap out到硬盘的swap分区。这些网站分别是A、B、C、D、E)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1724        274        510          0        598
-/+ buffers/cache:       1126        872
Swap:          976        148        828


测试情景2:最大内存 2GB,开启了zswap,使用lz4 compressor,25%(2048MB*0.25=512MB)的最大内存作为zswap的pool
首先,在一个干净的开机动作完成后并进入到桌面,先静置操作系统3分钟,什么也不动,并查看内存使用情况如下:

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1410        588        176         50       1030
-/+ buffers/cache:        330       1669
Swap:          976          0        976
接着,只打开一个chromium浏览器(我安装的7个Extentions也在运行。内存猛兽)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999       1789        209        227         51       1013
-/+ buffers/cache:        724       1275
Swap:          976          0        976
然后,依次打开7个不同的网站(当打开第7个时,系统开始出现卡顿,并在此时,内存数据才开始swap out到硬盘的swap分区。这些网站分别是A、B、C、D、E、F、G)

代码: 全选

kashu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1999        518       1480         86          2        159
-/+ buffers/cache:        356       1643
Swap:          976        326        650
此时,查看zswap的一些信息如下(没看懂,有谁帮忙解释下这些数值应该如何理解,谢谢)

代码: 全选

kashu:~$ sudo grep -R . /sys/kernel/debug/zswap/
[sudo] password for kashu: 
/sys/kernel/debug/zswap/stored_pages:45016
/sys/kernel/debug/zswap/pool_total_size:114397184
/sys/kernel/debug/zswap/duplicate_entry:0
/sys/kernel/debug/zswap/written_back_pages:0
/sys/kernel/debug/zswap/reject_compress_poor:9824
/sys/kernel/debug/zswap/reject_kmemcache_fail:0
/sys/kernel/debug/zswap/reject_alloc_fail:0
/sys/kernel/debug/zswap/reject_reclaim_fail:0
/sys/kernel/debug/zswap/pool_limit_hit:0
再接着,卡顿一会就变好了,再打开第8个不同的网站……还能以很流畅的状态维继着,不同的网页之间切换着查看也很自如。

上面的测试相当简单/粗糙,但已经可以说明zswap对系统性能的提升确实是有明显的帮助。
有谁有更好、更全面的测试方法可以推荐一下?谢谢!

zswap怎么安装,谢谢
zswap和zram是内核提供的功能
一般(对于大多数常见发行版)来说无需特别安装
用法:
https://www.kernel.org/doc/Documentatio ... v/zram.txt
https://www.kernel.org/doc/Documentation/vm/zswap.txt
回复