我的经验是,在物理内存耗尽之前,Linux可以正常工作。一旦使用交换空间,性能就会严重下降,GUI会变得无响应。
这个问题不仅限于特定的发行版或台式机,因为我已经尝试了一些(问题仍然存在)。
我该怎么办?
我的经验是,在物理内存耗尽之前,Linux可以正常工作。一旦使用交换空间,性能就会严重下降,GUI会变得无响应。
这个问题不仅限于特定的发行版或台式机,因为我已经尝试了一些(问题仍然存在)。
我该怎么办?
Answers:
一些指针:
购买更多的内存?:)
如果您正在运行的应用程序使用的内存比系统中的内存多,那么任何操作系统都无法对此进行其他操作,然后再交换到交换分区。如果您经常遇到这种情况,请停止运行一些不需要的程序,或者实际上是购买更多的内存,这几天来它非常便宜。
尝试将内核变量“ vm.swappiness”和“ vm.page-cluster”的值更改为更合适的值。
cd /etc/sysctl.d/
sudo echo "vm.swappiness = 0" > 60-memory-management.conf
sudo echo "vm.page-cluster = 1" >> 60-memory-management.conf
sudo chmod 644 60-memory-management.conf
检查新值是否与以下一起使用:
cat /proc/sys/vm/swappiness
cat /proc/sys/vm/page-cluster
交换无论如何都会严重降低性能,因此最好完全避免这种情况。这听起来可能很愚蠢,但是一种选择是不配置交换分区。我已经在所有系统上运行免交换了一段时间了:
如果您做的事情确实占用大量内存(带有大图像的Gimp,3D建模,CAD),则可能应该购买一些RAM。
如果可以弄清楚如何在发行版中进行设置,则可以尝试compcache。例如,在Ubuntu上,您可以通过编辑/etc/initramfs-tools/initramfs.conf并编辑“ COMPCACHE_SIZE”行来启用它。
自启用compcache以来,我认为磁盘上的交换没有被触及过一次。这是我当前的掉期统计:
% swapon -s
Filename Type Size Used Priority
/dev/ramzswap0 partition 1028084 69504 100
/dev/sda5 partition 3148668 0 -1
请注意,使用了compcache设备(ramzswap0),而不使用磁盘上设备(sda5)。
购买更快的RAM,并确保您的系统正在使用所有RAM。您正在使用什么CPU和体系结构?
我在屏幕右侧的扩展坞中运行系统监视器小程序。每当系统感觉缓慢时,我都会看一下仪表。如果任何事物都以超过10%的容量运行,则表明该进程已失控。
如果单击系统监视器,则可以深入了解正在消耗系统资源的进程。
http://www.colliertech.org/~cjac/tmp/screenies/system_monitor.png
几年前,通常使用专用驱动器进行交换,同时连接到自己的IDE / ATA总线-在同一驱动器上交换数据只是在性能上没有意义。
十年前,这种技巧就起作用了,但是现在随着驱动器速度的提高,您真的不应该看到这种繁忙的性能下降,除非您要更换国会图书馆,否则我会担心驱动器的运行状况-您最近检查过吗?
您可以随时尝试一下,如果您的RAM已经用完了,您没有太多选择。如果有希望的话,它可以使您的GUI更具响应性。
在网络上安装具有大量RAM的第二个Linux系统,将其NFS挂载到您的主系统上,然后在其中放置交换文件。
多年的经验,我可以告诉您没有太多需要调整的地方
但是,我最近所做的工作很有帮助。
1个
我从Ubuntu迁移到Arch Linux,从Unity / Gnome迁移到xfce桌面。
Ubuntu到处都是致命的缓慢。启动/图形..慢。
2
我购买了Intel SSD(80克),并在其上植入了根系统。
我的Arch Linux + XFCE4 + docky + conky可以在10秒内启动(使用lxdm自动登录),所有安装在SSD上的应用程序(例如Matlab)的启动速度都更快。
值得的钱。
3
将您的/ tmp放在其他位置,我使用有限大小的ramdisk来防止根文件系统混乱