Chris Hoffman

Ubuntu的启动速度非常快,按了开机键之后很快就进入桌面。但我们仍然可以充分利用内存,通过多种方法让开机速度更快。某些方法真的可以提速,对于旧电脑的效果尤其明显。

选用轻量级的桌面环境,关闭不必要的应用程序,可以让一台旧电脑如释重负。如果强行在旧电脑上运行Ubuntu的Unity桌面环境,系统的速度会拖得很慢很慢。

预载(Peload

预载是一个后台服务,可监控系统上使用的程序。它能找出程序使用的库(libraries)和二进制文件(binaries),预先加载到内存中,使程序的启动速度更快。例如,你可能经常在开机后打开Firefox浏览器和LibreOffice,那么设置了预载之后,系统在启动时会自动把这两个程序的文件加载到内存中。你再登陆系统打开这两个程序时,会发现它们比以前启动得更快。

大多数Ubuntu系统在默认情况下都没有启用预载,只有少数版本安装了这项服务。运行以下命令可以安装预载服务:

Sudo apt-get install preload

这样就装好了!预载服务会在后台运行,不会打扰你的工作。你可以在 /etc/preload.conf 文件中修改预载的设置,但一般情况下使用默认设置就可以了。

设置随机启动程序

你可以让某些程序在系统开机时随机启动。某些程序安装好之后也会默认随机启动——例如Dropbox。如果随机启动的程序很多,或者你的系统比较慢,那么你的系统就要花更多时间来启动。你可以在随机启动程序对话框(Startup Applications dialog)中禁止某些程序的随机启动。

很多默认启动的系统服务没有显示在列表当中。运行下面的命令,可以对这些服务进行设置:

sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop

这个命令修改了随机启动服务的文件属性,把参数“NoDisplay”的值由“true”改为“false”,让这项服务显示在随机启动的列表当中。运行了命令之后,重新打开随机启动程序对话框,你就能看到之前被隐藏的系统服务了。

除非你这些系统服务是干什么的,否则不要更改默认的启动设置。例如,如果你电脑没有蓝牙设备,那么可以禁止蓝牙管理器的随机启动;如果你使用Ubuntu One服务,就不要禁止它随机启动。

你只需要去掉程序前面的打钩,就可以禁止该程序随机启动了。不要点击Remove,那会从系统上删除该程序的。如果你想让程序恢复随机启动,在前面打钩就可以了。

使用轻量级的桌面环境

如果你的电脑配置比较旧,运行Ubuntu的Unity桌面比较吃力,可以选一款轻量级的桌面环境。LXDE、XFCE都是很好的选择,如果你需要的是最简洁的桌面,可以用Xmonad。这些桌面环境都能保证最基本的桌面功能。

选用轻量级的应用程序

轻量级的应用程序和轻量级的桌面环境搭配起来,能进一步提升旧电脑的系统性能。例如,你可以用Abiword代替LibreOffice,Abiword虽然功能少些,但速度更快。

如果你使用Mozilla的Thunderbird或GNOME的Evolution收发邮件,可以试试Sylpheed,它是一个轻量级的邮件管理器,带有图形界面。大多数软件都能找到轻量级的替代选择,在Google搜索一下就能找到。你甚至可以关闭所有图形界面,用终端完成所有操作——你会找到很多基于终端界面运行的软件。

缩短启动菜单的延时

如果你电脑装了多个系统,Ubuntu的GRUB启动菜单会预留10秒的延时让你选择一个系统。如果你没有选择,10秒后会自动进入默认的系统。如果你通常都是进入默认系统,可以把延时缩短,节省开机时间。

运行下面的命令,在文本编辑器中打开 /etc/default/grub 文件,可以修改启动延时:

gksu gedit /etc/default/grub

把GRUB_TIMEOUT的值改为小于10的整数。可以设为最小值1,以后如果你开机时需要选择启动菜单,可以按上下方向键或Esc键。

保存修改好的文件,运行下面的命令更新启动菜单,才能完成设置:

sudo update-grub2

你还可以使用软件Grub-Customizer,能够修改启动菜单的详细设置。

调整交换分区的参数值(swappiness

这个方法是有争议的。应该把swappiness设为多少才最合适,Linux内核的开发者对此存在不同的看法

swappiness影响着Linux内核的运行速度——也就是说,swappiness的值越大,从内存转移到硬盘交换分区的数据就越多,但系统性能会相对降低。Swappiness的值可以从0到100。

  • 0表示系统内核最大限度地使用物理内存运行程序,尽量不使用交换分区。

  • 100表示系统内核最大限度地利用交换分区运行程序,尽量减轻内存的负担。

Ubuntu系统把swappiness参数默认设为60。如果你发现Ubuntu系统过多地使用交换分区,降低了系统性能,你可以调低swappiness的数值,比如降到10。

下面的命令可以临时把swappiness的值改为10:

sudo sysctl vm.swappiness=10

但是下次重启系统后,swappiness又会恢复为默认值。如果你不想恢复默认,可以修改/etc/sysctl.conf文件:

gksu gedit /etc/sysctl.conf

打开文件,找到vm.swappiness,修改它的数值。如果找不到,可以在文件末尾添加一行命令,格式如下:

vm.swappiness=10

最后保存修改即可。

————————————————————

现在你的Ubuntu系统提速了吗?你有没有找到一个合适的swappiness值?可以在下面留言告诉我们。

六招让你的Ubuntu马上提速的更多相关文章

  1. 苹果教你六招:设计优秀的icon

    在iOS 7测试版发布后,网上开始出现大量关于iOS 7设计的资源.在WWDC期间,苹果曾为开发者举办了多场主题演讲,其中有一场是苹果UX布道师Mike Stern的精彩演讲-- 优秀iOS设计最佳实 ...

  2. Android常见内存泄露,学会这六招优化APP性能

    很多开发者都知道,在面试的时候会经常被问到内存泄露和内存溢出的问题. 1.内存溢出(Out Of Memory,简称 OOM),通俗理解就是内存不够,即内存占用超出内存的空间大小. 2.内存泄漏(Me ...

  3. 六招轻松搞定你的CentOS系统安全加固

    Redhat是目前企业中用的最多的一类Linux,而目前针对Redhat攻击的黑客也越来越多了.我们要如何为这类服务器做好安全加固工作呢?  一.  账户安全 1.1 锁定系统中多余的自建帐号 检查方 ...

  4. Ubuntu Bonding(16.04网卡绑定)

    UbuntuBonding(网卡绑定) 绑定,也称为端口聚合或链路聚合,意味着将多个网络接口(NIC)组合到单个链路,从而提供高可用性,负载平衡,最大吞吐量或这些组合.注意bonding只能提供链路监 ...

  5. Ubuntu下使用sshfs挂载远程目录到本地(和Windows挂载盘一样)

    访问局域网中其他Ubuntu机器,在不同机器间跳来跳去,很是麻烦,如果能够把远程目录映射到本地无疑会大大方面使用,就像Windows下的网络映射盘一样.在Linux的世界无疑也会有这种机制和方式,最近 ...

  6. iOS8:把这些七招APP哭

    6月3日.苹果发布了新一代的高配置手机操作系统iOS 8,我们看到了很多新的功能和引人注目的新变化.它为开发人员提供了许多其他更酷能力发展.第三方输入法也开放,这使得国内的百度.搜狗输入法是不过高兴的 ...

  7. 一张图11招学会Python网络黑客

    全部学起来: 第一招:搭建Python防范环境 第二招:扫描漏洞 第三招:暴力破解的秘密 第四招:防SQL注入 第五招:防命令注入 第六招:看清文件上传木马 第七招:看清Web攻击 第八招:利用Pyt ...

  8. 从零开始一步一步搭建Ubuntu Server服务器、修改数据源、安装Docker、配置镜像加速器、Compose部署Gitlab服务

    场景 最终目的是使用Docker Compose部署一个Gitlab服务. 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序 ...

  9. Other | 十招教你找到海量PPT模板

    转载自:https://www.douban.com/note/330962457/ 问:PPT模板是什么含义? 答: 先假定你们要的是这种网上到处泛滥成灾的主题PPT吧,下面请耐心看到最后,秋叶老师 ...

随机推荐

  1. chrome driver 下载

    https://npm.taobao.org/mirrors/chromedriver/ 解压后,把路径放到系统环境变量中即可 dirver = webdriver.Chrome()

  2. 大规模集群下的Hadoop NameNode

    本文我们来看看,如果大量客户端对NameNode发起高并发(比如每秒上千次)访问来修改元数据,此时NameNode该如何抗住? 二.问题源起 我们先来分析一下,高并发请求NameNode会遇到什么样的 ...

  3. Access大数据高效分页语句

    Access大数据高效分页语句 oracle的分页查询可以利用rowid伪列. db2的分页查询可以利用row_number() over()聚合函数. mysql有limit. access仿佛先天 ...

  4. HAL库详解

    转自:https://blog.csdn.net/zcshoucsdn/article/details/55213616

  5. win10 java环境变量

    https://jingyan.baidu.com/article/fd8044fa2c22f15031137a2a.html

  6. 判断一个点在多边形的内部C++

    /* 原理: 将测试点的Y坐标与多边形的每一个点进行比较, ** 会得到测试点所在的行与多边形边的所有交点. ** 如果测试点的两边点的个数都是奇数个, ** 则该测试点在多边形内,否则在多边形外. ...

  7. WPF:数据和行为

    如果自己来做一个UI框架,我们会首先关注哪些方面?我想UI框架主要处理的一定包括两个主要层次的内容,一个是数据展现,另一个就是数据操作,所以UI框架必须能够接收各种不同的数据并通过UI界面展现出来,然 ...

  8. Node.js 知识(教程)

    JavaScript on the Server JavaScript was originally built for web browsers, but with Node.js we can u ...

  9. hdu-4080 Stammering Aliens 字符串hash 模板题

    http://acm.hdu.edu.cn/showproblem.php?pid=4080 求出现次数大于等于n的最长串. #include<iostream> #include< ...

  10. Java对MongoDB中的数据查询处理

    Java语言标准的数据库时MySQL,但是有些时候也会用到MongoDB,这次Boss交代处理MongoDB,所以讲代码以及思路记录下了 摸索的过程,才发现软件的适用还是很重要的啊!!! 我连接的Mo ...