zoukankan      html  css  js  c++  java
  • ubuntu 服务优化。

    Liunx操作系统跟Windos XP一样,有一批系统服务随机而启动;略懂电脑的Windows XP用户会禁止那些不必要的服务,以提高开机速度;如今安装了Ubuntu操作系统,咱们也有必要了解Ubuntu的服务,然后根据自己的需要,将不必要的服务禁止掉,这样既可以提高Ubuntu的启动速度,还能够提高系统的安全性(尽管Ubuntu系统本身已经非常安全)
    我推荐Ubuntu用户安装sysv-rc-conf图形界面工具,禁止掉那些你不需要启动的服务。
    例如,我的笔记本没有蓝牙和 PCMCIA,所以我就不需要启动它,于是禁止掉那些不需要的服务。
    代码:  sudo apt-get install sysv-rc-conf
    然后: 代码: sudo sysv-rc-conf

    以下是部分Ubuntu操作系统服务详解,你可以参考关闭或者开启服务:
    1. acpi-support - 你最好使其在S运行等级处于“X”状态。
    2. acpid - acpi守护程序.这两个用于电源管理,对于笔记本和台式电脑很重要,所以让它们开启。
    3. alsa - 如果你使用alsa声音子系统,是的,开启它。
    4. alsa-utils -在我系统里,此服务取代了alsa,所以我关闭了alsa并在S运行等级将此服务开启。**注意**,我所说的“关闭”是指在所有运行等级里面去除所有 “X”。如果在你系统里没有它,没问题。让我们继续。
    5. anacron - 一个cron子系统,当时间到达时用于执行任何没有被执行的cron作业。当某种cron 作业时间准备好时,很可能你或许已经关闭了你的计算机。打个比方,updatedb被计划在每天2点执行,但是在那个时候,你的计算机是关闭的,然后如果 ananron服务如果是开启的话,它将设法抓起那个updatedb cron… 我将它关闭是因为我不经常关闭我的笔记本,但是否开启此服务完全取决于你。
    6. apmd - 这是十分困惑我的一个服务。我已经开启了acpid服务,那同时开启apmd有啥好处呢?如果你的计算机不是那么老,甚至不能支持acpi,然后你可以设法关闭它。无论如何,我是关闭它的。
    7. atd - 就像cron,一个作业调度程序。我把它关了
    8. binfmt-support - 核心支持其他二进制的文件格式。我让它开着
    9. bluez-utiles - 我把它关了因为我没有任何蓝牙设备
    10. bootlogd - 开启它
    11. cron – 开启它
    12. cupsys – 管理打印机的子系统。我没有打印机所以我关闭它了,如果你有打印机,开启他。
    13. dbus – 消息总线系统(message bus system)。非常重要,开启它。
    14. dns-clean – 当使用拨号连接,主要用于清除dns信息。我不用拨号,所以我关闭了它。
    15. evms – 企业卷管理系统(Enterprise Volumn Management system). 我关闭了它。
    16. fetchmail – 一个邮件接受守护进程,我关闭了它。
    17. gdm – gnome桌面管理器。 无论如何我关闭它了,因为我将系统用终端引导。如果你想直接引导到图形用户界面,这取决于你。
    18. gdomap – 事实上我也不知道为什么此服务必需开启。我没有在其他系统见过这个守护程序,所以我将其关闭并且我没觉得我失去了什么。开启它对笔记本或者台式机有任何好处吗?
    19. gpm – 终端鼠标支持。如果你觉得你在终端使用鼠标更好,那么在运行等级 1 和2 开启它。那正是你所需要的。
    20. halt - 别更改它。
    21. hdparm – 调整硬盘的脚本。我在运行等级 2,3,4,5去除了它但是在S 运行等级添加了它。我觉得早点打开DMA,32bit I/O等等将对其余过程有益。我自己也将原来的脚本精简了一下。如果我知道我正做什么,我觉得做过多的检查没用。相应配置文件是/etc/hdparm.conf。
    22. hibernate – 如果你的系统支持休眠,把它打开,否则它对你没用。
    23. hotkey-setup – 此守护进程为你的笔记本建立一些热键映射。支持的制造商包括:HP, Acer, ASUS, Sony, Dell, 和IBM。如果你有那些品牌的笔记本,你可以打开它,否则它或许对你没有任何好处。
    24. hotplug and hotplug-net #激活热插拔系统是费时的。我将考虑关掉它们。我在的/etc/network/interfaces文件作了很多修改,并将其设置为自动运行,而不是在热插拔进程期间映射我的无线网卡。所以我可以将它们关掉。我已经测试过了,甚至我将它们关闭,ubuntu仍旧可以检测到我的usb驱动器,我的数码相机,等等。所以我认为关掉它们是很安全的**注意**如果在关闭热插拔服务以后发现你的声卡部工作了,你可以将服务打开,或者编辑 /etc/modules文件并添加声卡驱动模块。经测试,后者比较快。
    25. hplip – HP打印机和图形子系统,我将其关闭了。
    26. ifrename – 网络接口重命名(network interface rename)脚本。听上去很酷但是我把它关掉了。主要用于管理多网络接口名称。虽然我有无线网卡和以太网卡,两者被内核标识为eth0和ath0,所以此服务对我不是很有用。
    27. ifupdown and ifupdown-clean – 打开它,它们是开机时网络及口激活脚本。
    28. inetd or inetd.real – 查看文件/etc/inetd.conf 注释掉所有你不需要的服务。如果该文件不包含任何服务,那关闭它是很安全的。
    29. klogd – 打开它。
    30. linux-restricted-modules-common – 你应该去查看下是否你的系统装载有任何受限制的模块。既然我需要madwifi ath_pci 模块,所以我将其开启。受限制的模块可以从/lib/linux-restricted-modules查看到。如果你发现你没有使用任何受限制的模块,那关掉这个服务没事。
    31. lvm – 我没有使用逻辑卷所以我将此服务关闭。让它开启如果你 *确实* 有lvm(lvm是逻辑卷管理器在此不再扩充).
    32. makedev – 打开它。
    33. mdamd – Raid管理工具。不使用Raid所以我将此服务关闭。
    34. module-init-tools – 从/etc/modules加载扩展模块。你可以研究/etc/modules文件查看是否有一些你不需要的模块。通常我们将此服务开启。
    35. networking – 在启动期间通过扫描/etc/network/interfaces文件增加网络接口和配置dns信息。让它开着。
    36. ntpdate – 通过ubuntu时间服务器同步时间 。在开机的时候我不需要它,故我关掉了此服务。
    37. nvidia-kernel – 我自己编译了nvidia驱动,所以此服务对我没用。如果你从受限制模块中使用nvidia驱动,那打开此服务。
    38. pcmcia – 激活pcmica设备。我将此服务打开在S运行等级而不是分别在2,3,4,5运行等级打开此服务,因为我觉得起先让硬件设备准备更好。如果你在使用没有 pcmica卡的台式机的话,请关闭此服务。
    39. portmap – 管理像nis,nfs等等之类服务的守护程序。如果你的笔记本或台式机是纯粹的客户端,那么关闭此服务。
    40. powernowd – 管理CPU频率的客户端程序。主要用于支持CPU speed stepping技术的笔记本。通常如果你在配置一台笔记本,你应该开启此服务。如果是台式机,那此服务应该没有用。
    41. ppp and ppp-dns - 对我没用,我不使用拨号。
    42. readahead - **感谢 mr_pouit!** readahead似乎是一种“预加载程序”。在开机时它将一些库文件加载到内存,以便一些程序启动的更快。但是它给启动时间增加了3-4秒。所以,你可以留着它…或者不。**更新**,经我测试我觉得加载程序没有什么不同。所以我决定关闭此服务。如果你有打开此服务的理由,那就打开它 。
    43. reboot - 别更改它。
    44. resolvconf – 按照你的网络状态自动配置DSN信息,我将它打开着。
    45. rmnologin – 如果发现nologin,那么去除它。此情况不会在笔记本上面发生,所以我摆脱它。
    46. rsync – rsync守护程序. 我不打算在我的笔记本上使用rsync协议,所以我将其关闭
    47. sendsigs – 在重启和关机期间发送信号。顺其自然。
    48. single – 激活单用户模式。顺其自然。
    49. ssh – ssh守护程序。 我需要ssh,所以我将此服务打开。
    50. stop-bootlogd – 从2,3,4,5运行等级停止bootlogd。顺其自然。
    51. sudo – 检查sudo 状态。我没在一台笔记本或者台式机客户端上看到任何使用sudo的好处,因此我关闭了它。
    52. sysklogd - 顺其自然。
    53. udev and udev-mab – 用户空间dev文件系统(userspace dev filesystem)。好东西,我将它们打开。
    54. umountfs - 顺其自然。
    55. urandom – 随机数生成器。可能没什么用处,但是我留着它。
    56. usplash - 嗯,如果你想看到漂亮的开机画面,顺其自然。无论如何沃关闭此服务了。如果你想关闭它,你也可以编辑/boot/grub/menu.lst文件注释掉splashimage行,除去开机 splash核心选项。
    57. vbesave – 显卡BIOS配置工具。它能保存你显卡的状态。我将其开启。
    58. xorg-common – 设置X服务ICE socket。我将其从在S运行等级开启移动到2,3,4,5,运行等级。如果我引导到单用户模式,那我不需要此服务。在最初引导期间这种方法将不占用时间。
    59. adjtimex – 这也是调整核心hw时钟的工具。通常你不会在开机列表中看见它。在非常少有的情况如果你确实在开机进程中看见它了,事出有因,因此最好顺其自然。在我的情况里,它是关闭的。
    60. dirmngr – 证书列表管理工具(certification lists management tool)。和gnupg一起工作。你必须看看你是否需要它。在我的情况里,我是关掉它的。
    61. hwtools – 一个优化irqs的工具。不确定打开它的好处。在我的情况里,我是关掉它的。
    62. libpam-devperm - 在系统崩溃之后用于修理设备文件许可的一个守护程序。听起来不错,因此我打开它了。
    63. lm-sensors – 如果你的主板内建一些传感芯片,通过用户空间(userspace)查看hw状态可能是有帮助的。我运行了它,但是它提示“没有发现传感器”,因此我关闭了此服务。
    64. mdadm-raid – 作用和mdadm服务相同。用来管RAID设备。如果你没有此类设备,那尽管关掉它好了。
    65. screen-cleanup – 一个用来清除开机屏幕的脚本。嗯,是否关闭它有你决定。在我的情况里,我打开它了。
    66. xinetd – 用来管理其他守护进程的一个inetd超级守护程序。在我的系统里,xinetd管理chargen, daytime, echo和time (在 /etc/xinetd.d 目录找到的),我不关系任何一个,因此我关掉了此服务。如果在xinetd下你确实有一些重要的服务,那打开它。

    linux主要系统服务介绍 
    --------------------------------------------------------------------------------
    apmd--apmd用来监视系统用电状态,并将相关信息通过syslogd写入日志。也可以用来在电源不足时关机 
    arpwatch--用来维护以太网物理地址和ip地址的对应关系 
    atd--运行用户用at命令调度的任务。也在系统负荷比较低时运行批处理任务 
    autofs--当您需要时自动转载文件系统,而当您不需要时自动卸载 
    chargen--tcp版本的chargen server 
    chargen-udp--udp版本的chargen server 
    crond--周期地运行用户调度的任务。比起传统的unix版本添加了不少属性,而且更安全,配置更简单 
    daytime--tcp版本的daytime server 
    daytime-udp--udp版本的daytime server 
    echo--tcp版本的echo server 
    echo-udp--udp版本的echo server 
    eklogin--接受rlogin会话鉴证和用kerberos5加密的一种服务 
    finger--用于应答finger请求的服务 
    gpm--为文本模式下的linux程序提供了鼠标的支持。它也支持控制台鼠标的拷贝,粘帖操作以及弹出式菜单 (必须)
    gssftp--接受可被kerberos5验证的ftp连接 
    httpd--http是著名的www服务器,可用来提供html文件以及cgi动态内容服务 
    identd--提供验证身份的方法 
    ipchains--ipchains包过滤防火墙 
    iptables--iptables包过滤防火墙 
    ipvsadm--调用ipvsadm来建立和维护ipvs路由选择表 
    isdn--启用isdn(综合服务数字网)服务 
    kadmin--更改在主控kdc中使用本机的kadmin工具,或透过kadmin服务来完成 
    kdcrotate--设置配置文件/etc/krb5.con中的kdcs表项 
    keytable--该程序的功能是转载您在/etc/sysconfig/keyboards里说明的键盘映射表 
    klogin--接受bsd方式的rlogin会话,但需要使用kerbeos5验证 
    kprop--是否允许kdc接收来的master kdc的升级 
    krb5-telnet--允许普通的telnet登陆,但也可使用kerberos5验证 
    krb524--是以改变kerberos5到kerberosIV的赁证 
    krb5kdc--开启kerberosIV和5所需的连接以获得赁证 
    kshell--接受rshell命令鉴证和用kerberos加密的服务 
    kudzu--运行硬件检测,并可选择性地设置硬件变化 
    lpd--lpd是系统打印守护程序,负责将lpr等程序提交给打印作业 
    netfs--负责装载/卸载nfs、samba、ncp文件系统 
    network--激活/关闭启动时的各个网络接口 (必须)
    nfs--nfs是一个流行的基于tcp/ip网络的文件共享协议.该服务提供了nfs文件共享服务 
    nfslock--提供nfs文件上锁功能 
    nscd--该服务负责密码和组的查询,并且缓冲查询结果 
    portmap--portmap用来支持rpc连接,rpc被用于nfs以及nis等服务 
    postgresql--postgresql关系数据库引擎 
    random--保存和恢复系统的高质量随机数生成器,这些随机数是系统一些随机行为提供的 
    rlogin--rlogin程序服务,提供来自远程信任主机的注册功能 
    routed--该守护程序支持rip协议的自动ip路由表维护.rip主要使用在小型网络上,大一点的网络就需要复杂一点的协议 
    rsh--提供rcmd程序或者rsh程序的服务 
    rstatd--rstat协议允许网络上的用户获得同一网络上各机器的性能参数 
    rsync--对ftp服务的一个很好的附加,允许循环码求和校验等 
    rusersd--该服务使网络用户可以定位同一网络上的其他用户 
    rwalld--rwall协议允许远程用户向在同一系统中活跃着的终端发送消息,类似wall的本地行为 
    rwhod--允许远程用户获得运行rwho精灵的机器上所有已登录用户的列表,与finger类似 
    smb--启动和关闭smbd和nmbd精灵程序以提供smb网络服务 
    snortd--一个轻量级的网络入侵检测工具 
    swat--samba网络配置工具,可以通过流览器的901端口连接使用swat 
    syslog--syslog是操作系统提供一种机制,守护程序通常使用这些机制将各种信息写到各个系统日志文件 (必须)
    telnet--提供telnet服务,使用未加密的用户/密码组进行验证 
    time--tcp版本的rfc 868 time server 
    time-udp--udp版本的rfc 868 time server 
    webmin--webmin是基于web的集系统管理与网络管理于一身的强大管理工具 
    xfs--在引导和关闭时启动和停上x字体服务,并可能重新生成字体表 (必须)
    xinetd--因特网操作服务程序。提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全,监控网络对各种它管理的服务的需求,并在要的时候启动相应的服务程序
    ypbind--实现网络信息服务的服务器端

    针对系统的优化工作需要根据不同的系统采用不同的办法。本文旨在描述通用的优化 Linux 的一些办法。
    一、编译选项
    当我们采用 -O9 来编译程序时,或许文件字节数是最大的,但是往往其运行速度也是最快的。
    根据不同的机器架构,你可以把下面的语句加入 /etc/profile 。
    i686:export CFLAGS=-O9 -funroll-loops -ffast-math -malign-double
    -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions
    i586:
    export CFLAGS=-O3 -march=pentium -mcpu=pentium -ffast-math
    -funroll-loops -fomit-frame-pointer -fforce-mem -fforce-addr
    -malign-double -fno-exceptions
    i486:
    FLAGS=-O3 -funroll-all-loops -malign-double -mcpu=i486 -march=i486 -fomit-frame-pointer -fno-exceptions
    另外,安装程序时,使用 tarball 格式总要比 RPM 格式来得好,因为, tarball 需要重新编译,能针对你的机器架构作优化,得到最好的性能。这也是本站下载中心提供的都是 .tar.gz 格式的原因吧!
    二、重新编译内核
    一般的 Linux 发行商发布的 Linux 版本,其内核总是会带有一些对你来说不是很实用的东西,例如对无线火腿(HAM Radio)的支持,对 Token Ring 的支持等。
    如果对自己编译感到怯生生的话,可以查看下面的两个网站的资料:
    Linux Kernel Howto: 
    www.linuxdoc.org/HOWTO/Kernel-HOWTO.html
    Linux Kernel : 
    www.kernel.org
    经过三次失败的编译后,你就能成功编译自己需要的内核了。“失败是成功之母”么!
    三、停止不使用的服务
    Sendmail, httpd, crond, (kudzu), mysql, portmap, postgresql, (smb),
    snortd, webmin, inetd (或者 xinetd)
    等都是很棒的程序,但是如果你不会使用他们,干吗要让他们占用您宝贵的资源呢?而且,这些程序都会带来安全隐患。一般说来,一套“干净”的 Linux
    系统,只需要gpm, network, syslog, ssh 和 xfs。如果临时有需要,就手工启动好了。这些启动脚本一般都在
    /etc/rc.d/init.d 目录下。
    检查自己的机器上使用中的服务,可以采用 nmap 工具扫描。
    [xyj@freelamp.com]$ nmap -p1-65535 211.94.129.28
    Starting nmap V. 2.54BETA30 ( 
    www.insecure.org/nmap/
    )
    Interesting ports on freelamp.com (211.94.129.28):
    (The 65492 ports scanned but not shown below are in state: closed)
    ---Edited version of the output due to space considerations--
    Port State Service
    ...
    514/tcp open shell
    1025/tcp open listen
    1099/tcp open unknown
    1214/tcp open unknown
    ...
    检查特定端口上正在运行的程序名,可以采用:
    [root@freelamp.com /root]# netstat -anp|moreActive Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    ....
    tcp 0 0 203.199.66.200:8007 203.199.66.197:1060 CLOSE 1005/java
    tcp 0 0 203.199.66.200:22 203.199.66.197:3768 ESTABLISHED 1381/sshd
    tcp 0 0 203.199.66.200:23 192.168.57.46:1546 ESTABLISHED 1229/in.telnetd: 19
    ....
    最后一列显示运行的程序及其 PID。
    我们还可以采用 ps 命令检查机器上正在运行的守护程序:
    [root@freelamp.com root]# ps xc -u 0
    PID TTY STAT TIME COMMAND
    ...
    1475 ? S 0:02 sendmail
    1498 ? S 0:04 gpm
    16539 ? S 0:01 httpd
    ...
    四、规划好你的文件系统
    在安装系统之前,您就需要对硬盘做好恰当的规划。划分一定的文件系统,不仅仅是系统本身的需要,而且在安全层面上也十分有意义。我们一般需要
    /,/usr,/var,/tmp ,/home 和 swap 这么几个。另外,把 / 和 /usr
    开得大一点,十分有必要。如果你的机器提供别人发送邮件,或者提供个人主页等服务,那么一个很大的 /home
    就极为重要,如果你的业务够好的话,你甚至可以购买第二个硬盘,建立 /home2 。
    另外,把 swap 分区,放到硬盘的最外层,能提高读写速率。如果有多个硬盘的话,可以在每个硬盘上各开 swap 分区,另外,建议 swap 分区的大小为物理内存的两倍。
    如果采用 IDE 硬盘的话,您可以采用
    /sbin/hdparm -c1 -d1 -m16 /dev/hda
    来提高硬盘性能。
    新版本的 Linux 都支持日志文件系统,这类文件系统不仅提供文件完整性上快速恢复,在读写速度上也较普通的 ext2 文件系统有很大提升。
    文件的最后存取时间,对很多人来说没有任何用户,因此,我们可以关闭操作系统记录文件最后存取时间的功能,修改: /etc/fstab :
    把 dev/hda6 /home ext2 defaults 1 2改为:
    /dev/hda6 /home ext2 defaults,noatime 1 2
    五、关闭 X 相关的软件
    如果你像我一样,不喜欢在窗口环境下干活,那么要 X 干么?让我们把机器启动后的缺省界面为 Console 吧:
    修改: /etc/inittab 把
    id:5:initdefault:
    修改为:
    id:3:initdefault:
    没有浏览器了么,不要紧,你可以在 Console 下使用 lynx 来浏览网站。
    links 也是一个不错的浏览器,你可以从
    artax.karlin.mff.cuni.cz/ mikulas/links/
    下载。
    六、关闭多余的虚拟控制台
    我们知道从控制台切换到 X 窗口,一般采用 Alt-F7 ,为什么呢?因为系统默认定义了 6 个虚拟控制台,所以 X 就成了第7个。实际上,很多人一般不会需要这么多虚拟控制台的,修改
    /etc/inittab ,注释掉那些你不需要的。
    # Run gettys in standard runlevels
    1:2345:respawn:/sbin/mingetty tty1
    2:2345:respawn:/sbin/mingetty tty2
    3:2345:respawn:/sbin/mingetty tty3
    4:2345:respawn:/sbin/mingetty tty4
    #5:2345:respawn:/sbin/mingetty tty5
    #6:2345:respawn:/sbin/mingetty tty6
    结论:
    系统优化的哲学可以简单的归结为四个字:”少就是多“;只运行那些你需要的服务,使用正确的应用来完成任务,使用命令行方式,只有充分精简了你的
    系统后,你的系统性能才能充分发挥。我的愿望就是,全部重新编译我系统里面的所有程序。:-)实际上,FreeLAMP.com
    里面的大多数程序,都是经过我重新编译以后的“杰作”。

  • 相关阅读:
    XML错误信息Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-4.0.xsd). For more information, right click on the message in the Problems View ...
    Description Resource Path Location Type Cannot change version of project facet Dynamic Web Module to 2.3.
    maven创建web报错Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:maven-compiler-plugin:maven-compiler-plugin:3.5.1:runtime Cause: error in opening zip file
    AJAX跨域
    JavaWeb学习总结(转载)
    JDBC学习笔记
    Java动态代理之JDK实现和CGlib实现
    (转)看懂UML类图
    spring boot配置使用fastjson
    python3下django连接mysql数据库
  • 原文地址:https://www.cnblogs.com/lps365/p/3386628.html
Copyright © 2011-2022 走看看