zoukankan      html  css  js  c++  java
  • 对Ubuntu操作系统进行彻底优化

    在安装Linux系统之初,就应该考虑怎样使Linux系统得到最好的性能。Linux本身也设计成可以良好扩展的形态,比如在Linux系统中,我们可以随心所欲地组织磁盘分区,有些朋友喜欢一个/,一个swap就搞定,其实这个不是非常科学的选择,本人在多次重装后,总结一些经验,与各位朋友分享,如果有不对的地方,请务必提出批评。
    第一部分 仅有一张硬盘的电脑安装Linux
    我在论坛上的优化初步一文中提过,Linux也是有磁盘碎片的,所以为了减少碎片,应将内容经常改变的目录放在单独的分区。一个优化的分区策略,可以很好地改进Linux系统的性能,减少磁盘碎片,提高磁盘I/O能力。从方便备份数据的角度考虑,因为很多备份工具对整个分区进行备份的效率很高,所以我们应将Linux系统的几个主要的目录作为单独的文件系统,为它们各自分配一个区。
    这里简单介绍下,几个重要的目录,这几个目录在ubuntu安装的硬盘分区时,可选择性的特别分区,进行挂载。
    /usr 文件系统中一般不改变的文件,如库,程序。
    /var 文件系统包含会改变的文件。
    /home 文件系统包含用户家目录,即系统上的所有实际数据。
    /tmp 临时文件。
    /usr/local 这是提供给一般用户的/usr目录,在这安装软件最适合。
    /srv 一些服务起动以后,需要的数据放在这里。
    /opt 一些大型程序,安装在这里,方便管理。
    / 根目录,没啥说的。
    我的建议是以上所有目录都单独在硬盘上分区,如果要问为什么,我可以举个例子。
    比如LumaQQ,这个软件,我们可以把他安装在/opt下面,这样我们如果需要重新安装系统的话,可以选择不格式化/opt,并且把~/.lumaqq 这个文件夹备份下,这样当我们重新装好系统,再次把/opt挂载好,只需要把.lumaqq这个文件夹放在~下,配置好java,运行一个命令:
    代码:
    sudo ln -s /opt/LumaQQ/lumaqq /usr/bin/lumaqq
    就可以再次使用lumaqq了,而且聊天记录等一系列lumaqq相关的设置都不会消失,避免了下载的麻烦,也少了安装的麻烦。
    从磁盘碎片的角度上来讲,/tmp、/var和/home都是活动最频繁的分区了,如果我们把它们直接放在根目录下必然引起处理的麻烦,到时候有了磁盘碎片影响整个磁盘的性能。
    因此,我推荐把以上的目录全部单独分区,单独挂载。
    在分区的时候也是有一定的机巧的,根据磁盘的特点,我们知道越是靠磁盘外部的柱面,旋转越快,而且每次旋转时,磁盘读写头可以覆盖较多的区域,也就意味着靠外部的柱面可以得到较好的性能。所以在分区时,我们应该考虑将访问频率高的,对系统性能影响相对较大的分区置于磁盘的靠外部分。最好的方案从外到内应该是:
    /boot->swap->/home->/var->/tmp->/srv->/opt->/usr->/usr/local->/
    当然,也完全没必要死守这个规则而对硬盘进行大规模的修改,可以根据目前已有的分区进行调整。
    另外要说的是,分完以上的区后,千万别把所有空间都用上,应该留下几个空的分区作为备份用,比如本人的硬盘最后的分区是一个高达30g的备份分区,上面储存了我上网下载的各种文件,自己作的某些东西,而且除了这个分区以外,我还有一个10g大的分区,并没有储存任何东西,仅仅是为了整理磁盘碎片用。
    第二部分 有多张硬盘的电脑安装Linux
    这里我们主要采取的方法就是RAID。
    首先最好的情况下是使用硬件RAID,性能最强,而且也没有任何复杂的部分,只要在主板的bios上设置好了,那么一切ok。
    在不得已而求其次的状况下,我们使用软件RAID,那么我们最好有两个或者更多一样大的硬盘分区,硬盘的转速、缓存等性能也最好相同,这样的话,我们就可以得到软件RAID的最佳性能。
    具体的方法,这里只介绍安装时的部分,在硬盘分区的时候划分两个或多个一样大的分区,文件格式选择为RAID。然后选择软件RAID设置,创建MD设备,然后在创建好的MD设备上进行新的分区,原则同第一部分。
    当然在现实中,很可能我们的硬件并没有提供我们可以施展RAID的环境,这个时候我们还有最后的方法,就是swap这个分区,我们知道虚拟内存是很重要的,因此我们可以在两块硬盘上分别划出swap区,然后使用让他们优先级相同的技巧增强系统性能。
    在/etc/fstab这个文件中,写有swap分区的那一行,options的部分这样写:
    代码:
    sw,pri=5
    这样可以使两个swap同时运行,对系统性能应当有所补益。
    第三部分 对于IDE硬盘的安装后优化
    这里主要谈谈谈关于hdparm的使用,hdparm的某些功能可以通过编译内核来完成,在论坛上jaquar00是这样说的,当然我觉得使用这个软件更加方便,具体的使用方法如下:
    首先进行测试:
    代码:
    sudo hdparm -tT 设备(一般是/dev/hda如果有两块硬盘第二块就是/dev/hdab)
    然后进行设置:
    代码:
    sudo hdparm [-icdmXTt]
    -i 这个参数 提供一些信息是由系统的驱动程序判断出硬盘的性能而得出的
    它不一定准确,但是能为我们提供一点帮助。
    -c 设定 32-bit 存取模式。这个 32-bit 存取模式指的是在硬件于pc界面 之间的传输模式,而影碟本是依照 16-bit 在运转
    -d 设定是否启用DMA模式 -d1 启动 -d0 关闭
    -m 设定同步读取多个 sector 的模式。一般来说,设定此模式,可降低因为 读取磁碟而损失的效能,16/32为最佳化,具体数字请根据 -i 得出的 信息中MaxMultSect来设定。
    -X 设定 UtraDMA 的模式。一般来说,UDMA 的模式值加64就可以了。但是现 在的电脑普遍性能强劲,在这里请参考自己的电脑配置。
    33 MHz DMA mode 0~2 (X64~X66)
    66 MHz DMA mode 3~4 (X67~X68)
    100 MHz DMA mode 5 (X69)
    如果你的硬盘上面显示的UATA 100以上的,那么 X69 也许不错
    -T 测试暂存区的存取效能。
    -t 测试影碟实际的存取效能。
    看清以上参数后,设置的具体方法我用例子说明,在我的电脑上我是这样作的:
    代码:
    sudo hdparm -X69 -d1 -u1 -m16 -c3 /dev/hda
    完成后,再次测试。最后如果效果有所提升,那么就使用一下命令进行保存:
    代码:
    sudo hdparm -k1 设备
    论坛上的jaquar00朋友,帮我补充了用
    代码:
    lspci -v | grep 'IDE'
    这条命令查询你的硬盘支持那种方式,但是非常奇怪,该命令在我的电脑上什么都看不出来,全是unknow,不过也许对其他朋友能有所帮助。
    第四部分 对于磁盘碎片的处理方法
    关于磁盘碎片的问题,我已经查找了很多资料,可以确定的是,Linux的文件系统非常优秀,碎片化问题很小,而且Linux内核本身具备了相应的预防措施,即空间足够大的情况下,对已有文件块不再进行写操作等,这使Linux产生了越用越整齐的说法,但是无法得知这样的说法究竟是否属实,所以我这里介绍另外一种比较麻烦的方法,即格式化重写法。
    在使用这样的方法时,必须要有一个空间足够容纳要整理的硬盘的文件的空闲分区,
    在需要格式化的时候,将所有要整理硬盘的文件移到这个分区,然后将原有硬盘格式化,再把所有文件移回去,这种方法看似疯狂,但是连续的写可以避免磁盘碎片,也许某天一些朋友会考虑使用这种方法。
    第五部分 对于不同处理器的优化
    intel处理器请使用i686内核
    代码:
    sudo apt-get install Linux-i686
    amd处理器请使用k7内核
    代码:
    sudo apt-get install Linux-k7
     
    第六部分 对于笔记本、台式机等非服务器的系统服务优化
    Linux的各大发行版,都有些不必要的服务被默认开启了,针对ubuntu,我们可以采用选择性关闭的方法加速起动,提高系统性能。
    这里我们安装一个软件:
    代码:
    sudo apt-get install sysv-rc-conf
    然后这样起动:
    代码:
    sudo sysv-rc-conf
    在这个软件里,可以用键盘的方向键移动,用空格选取,也可以直接用鼠标选取,最后用q保存退出,一下列出服务的名称和基本的解释。
    代码:
    acpi-support 这个是关于电源支持的默认是1,2,3,4,5下启动,我认为你可以把它调整到s级别。
    acpid acpi的守护程序,默认是2-5开启,我认为可以不用管。
    alsa alsa声音子系统,应该不用开启它。
    alsa-utils 这个服务似乎取代了alsa,所以开启这个就可以了,我在S级别开启它。
    anacron 这是一个用于执行到时间没有执行的程序的服务,我认为它无所谓,所以关了它,这个可以随便。
    apmd 也是一种电源管理,我认为电脑如果不是很老,它就没有开启的必要了。
    atd 和anacron类似,我把它关了。
    bluez-utiles 传说中的蓝牙服务,然后遗憾我没有,所以关了。
    bootlogd 似乎使用来写log的,安全期间开着他也许比较好。
    cron 指定时间运行程序的服务,所以开着比较好的。
    cupsys 打印机服务,所以如果你有,就开启吧。
    dbus 消息总线系统,非常重要,一定要开。
    dns-clean 拨号连接用的,如果不用,就关了它。
    evms 企业卷管理系统,由于我并不明白什么叫做企业卷,所以我关了它。
    fetchmail 用于邮件守护,我关了它。
    gdm gnome桌面管理器,我关了它,然后用startx启动gnome。
    halt 关机用的,不要更改
    hdparm 这个我刚才有讲,如果没有ide硬盘也就不用开启它了。
    hotkey-setup 这个是给某些品牌笔记本设计的热键映射,台式机用户请关了它
    hotplug 这个是用于热插拔的,我已经测试过了,在某些电脑上关闭它会使声卡无效,请在S级别开启它。
    hplip hp打印机专用的,应该可以关了它。
    ifrename 网络接口重命名,好像没用,关了。
    ifupdown 这个使用来打开网络的,开着它。
    ifupdown-clean 同上。
    klogd Linux守护程序,接受来自内核和发送信息到syslogd的记录,并记录为一个文件,所以请开着它。
    Linux-restricted-modules-common 这个使用来使用受限制的模块的,你可以从/lib/Linux-restricted-modules下查看,如果没有什么,你可以关掉它。
    lvm 逻辑卷管理器,如果你没有请关了它。
    makedev 用来创建设备到/dev/请不要动他。
    mdamd 管理raid用,如果你没有请关闭它。
    module-init-tools 从/etc/modules 加在扩展模块的,这个一般开着。
    networking 增加网络接口和配置dns用,将它开启。
    ntp-server 与ubuntu时间服务器进行同步的,关了。
    pcmcia 激活pcmica设备,遗憾我有生以来都没有见过这样的设备,关了它。
    powernowd 用于管理cpu的客户端程序,如果有变频功能,比如amd的quite' cool 那么就开启它吧。
    ppp 拨号用的,我关了它。
    ppp-dns 一样,也关了。
    readahead 预加载服务,让我想起了win的预读,当然他们不同,它会使启动变慢3-4妙,所以我关了它。
    reboot 重启用的,不要动。
    rmnologin 如果发现nologin,就去除它,在笔记本上不用开启。
    rsync rsync协议守护,请视情况而定。
    screen-cleanup 一个清除开机屏幕的脚本,随便。
    sendsigs 重启和关机时向所有进程发送消息。所以不要管它。
    single 激活但用户模式,不用管它。
    stop-bootlogd 从2,3,4,5级别停止bootlogd,不用管它。
    sudo 这个不用说吧,不用管它。
    sysklogd 用于记录系统日志信息,不用管它。
    udev 用户空间dev文件系统,不用管它。
    udev-mab 同上。
    umountfs 用来卸载文件卷的,不用管它。
    urandom 生成随即数的,不知道怎么用,不用管它。
    usplash 那个漂亮的启动画面,但是我关了它,它也存在,所以想关他需要把内核起动参数中的splash一句删掉。
    vbesave 显卡bios配置工具,不用管它。
    xorg-common 设置x服务ice socket。不用管它。
    第七部分 对于桌面环境的优化
    在上次的文章中,我把gnome叫做wm,这显然是一个错误,谢谢jaquar00的提醒,那么这次我称它为桌面环境,它是影响性能的大户,某些朋友的电脑不够强劲,也许需要对它作出调整。
    首先推荐使用轻量级的桌面环境xfce4,或者一些wm,比如fvwm、iceWM。关于这三个软件的使用论坛其他桌面版面有置顶贴详细说明请参考:
    xfce4:http://forum.ubuntu.org.cn/viewtopic.php?t=1160
    fvmw: http://forum.ubuntu.org.cn/viewtopic.php?t=1662
    iceWM:http://forum.ubuntu.org.cn/viewtopic.php?t=1159
    然后对于想使用gnome,而对美化要求比较低的朋友,我又一些建议:
    1 不使用屏幕保护程序
    无论有没有使用,屏幕保护程序都会耗费cpu资源,因为后台的计时器会一直检查系统是否空闲,并对屏幕保护程序激活的时间进行倒计时。如果要暂时离开座位,请使用锁住屏幕。
    2 降低颜色设定
    出于健康的目的,分辨率请达到1024*768,刷新率如果不是LCD显示器,请务必使用85Hz,而颜色如果没有太高的要求,请使用16位增强色。
    3 去除墙纸
    如果对美化没有任何要求,完全可以这样作。
    4 清理桌面
    清理桌面图表可以减少屏幕需要不断刷新的颜色。把不需要的图表删除,一些常用链接全部移动到自己创建的某个文件夹里。
    5 关闭gnome的预览行为
    在文件管理首选里,预览的默认行为是仅本地,如果认为没有必要请关掉它。
    6 关于主题
    前不久我自己编译安装了新的gtk和cairo,它非常漂亮,但同时非常慢,所以各位朋友要小心利用。
    第八部分 结语
    本文是在论坛上发表的新手优化ubuntu基本教程整理后所得的,我想要声明的是一切的优化行为在不能良好运用的情况下,都是有风险的,zxshen朋友就因为在上篇文章的引诱下,设置出错无法出声,请各位朋友三思而后行,错误之处请务必指出,我一定诚心接受批评。
  • 相关阅读:
    Golang 学习之路
    Kubernetes 资源对象之DaemonSet
    Spring Cloud服务注册中心交付至kubernetes
    自动化运维之Ansible入门
    MySQL 高可用之主从复制
    Kubernetes 强大的namespace
    SaltStack RESTful API操作
    Kubernetes 服务自动发现CoreDNS
    2个月……
    一次游玩与这两周的一些感想
  • 原文地址:https://www.cnblogs.com/huapox/p/3299916.html
Copyright © 2011-2022 走看看