我希望将swapiness设置为最小值,这样Ubuntu16.04仍然可以运行而不会崩溃。我怎么能这么做?
下面是ls -alt /var/crash的输出:
drwxrwsrwt 2 root whoopsie 4096 Jul 26 14:12 .
-rw-r--r-- 1 root whoopsie 1928 Jul 26 14:12 virtualbox-4.3.0.crash
-rw-r----- 1 some_user whoopsie 3978513 Jul 26 14:02 _usr_bin_compiz.1000.crash
drwxr-xr-x 15 root root 4096 Aug 8 2016 ..发布于 2017-08-04 23:33:02
这取决于你的Ubuntu有多少物理内存,我们可以问问我们自己,当我有很多内存时,我为什么要使用一个很高的交换值?
您也可以进行实验,看看什么是对您的情况最好的,但我不建议您禁用交换使用"0",使用"10“之类的东西来提高性能。如果你想要接近"0“的东西,那就跟"1”一起去。
参数值设置为“60”意味着当RAM容量达到40%时,内核将交换。将其设置为“100”意味着内核将尝试交换所有内容。将其设置为10 (就像我在本教程中所做的那样)意味着,当RAM已满90%时,将使用交换。[1]
换句话说,"60“意味着当剩下60%的内存时开始交换。
“1”是最小可能的“主动交换”设置,而“0”意味着完全禁用交换,只有当RAM完全填充时才恢复。[1]
这是一篇好文章阅读包括建议。
发布于 2017-08-05 01:34:04
你的问题没有真正的答案,就像“视情况而定”一样。
交换并不真正直接影响性能,这取决于您正在做什么。
一般来说,您的内核已经为性能进行了优化,并且不太可能通过调整值来获得任何性能。
关于交换,问题是您有多少RAM,使用多少?
如果您使用更多的ram,那么您将使用交换,您将受到性能的影响。但是,如果您没有可用的交换空间,并且耗尽了RAM,您的程序将崩溃或锁定,或者您将丢失数据,很难说。
如果您由于交换而受到性能影响,则解决方案是购买更多的RAM,而不是禁用交换。
性能可能会受到显卡或其他硬件的影响,包括性能较差的无线驱动程序(或任何内核驱动程序)。
要调试您的性能问题,我们需要知道您的硬件,您正在做什么,什么使您认为您有一个性能问题,并可能基准测试之前和之后,您的调整,以交换或其他。
在我的系统中,我有4GB的内存,并且具有正常的桌面活动,例如运行浏览器、文字处理、电子邮件等,我从不耗尽RAM。
bodhi@daemon:~$free -m
total used free shared buff/cache available
Mem: 5403 2558 739 77 2106 2398
Swap: 0 0 0实际上,我甚至没有使用交换分区。
但是,如果我想启动一个虚拟机,并给它1GB的RAM,你肯定我需要交换,所以在这种情况下,我挂载了交换分区。
在我的大型服务器上,我运行多台虚拟机,但我有16 Gb内存。用我所有的VM,我时不时地点击交换,但不多。当然,最好是使用交换,然后发生VM崩溃。
所以这取决于..。服务器端,我碰到了我的交换,以至于VM的性能很慢--我会购买更多的RAM。桌面端,我只是不需要运行足够的VM来证明购买更多的RAM是合理的。个人选择。
你需要分析你的用法并做出你自己的选择。在这一点上,我们甚至不知道与其他问题相比,交换限制了多少或有多少。如果您有足够的RAM,不要使用交换,然后它是一个没有问题。
发布于 2017-08-05 04:50:34
Ubuntu不会与swappiness=1崩溃,因为它仍然将使用交换文件,只是不惜一切代价避免它。
与合理的交换相比,它实际上会降低性能。
事实上,1的交换值将使ubuntu不被交换,直到最后可能的时刻。这意味着当启动具有几乎满内存的新应用程序时,会出现延迟和可能崩溃。因为它需要一次大量的交换来适应新的应用程序。然后,在内存完全满的情况下,每一个页面的丢失都会导致一个新的页面被交换,可能第二次会有多次性能下降。
ubuntu首先交换的东西是未使用的代码(app entrypoint)和缓存的文件,它们需要“在内存中”,但可能永远不会再被访问,因此强制这种行为是完全不必要的。
内核非常擅长管理它的内存,如果您正在使用默认设置进行交换,您应该购买更多的RAM或运行更少的东西。
另一方面,它在不需要交换的情况下运行在嵌入式系统上很常见。与其搅乱交换,你应该彻底消除交换文件/分区,让自己相信它没有那么好。
如果内存不足,消除交换只会阻止应用程序的启动。这在某些情况下可能是可取的。
https://askubuntu.com/questions/943165
复制相似问题