自己动手提高ubuntu系统的性能(EXT3)

修改个人用户设置

  在内核设置层面之上,还有很多个人用户配置的参数,ulimit命令就是bash下提供的,查看对指定应用的限制值的工具。你可以通过ulimit –a命令显示当前设置:

core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) unlimited
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

  上面的信息什么意思?举个例子,

open files (-n) 1024

  表示一个用户shell最多可以打开1024个文件,想增加怎么办?ulimit -n num即可。

core file size (blocks, -c) 0

  表示core dumps功能关闭。想打开怎么办?ulimit -c num即可。
如果你只是普通身份用户,则只能对数值进行减少的修改。如果想增加数值,需要用root权限修改。而且,一些参数的上限是和内核参数对应的,比如你可以增加打开文件句柄的数目,但数目的最大值不能超过内核参数fs.file-max设置的值(sysctl fs.file-max看看)。

修改日志数据

  好吧,我知道这招有些冒险,但是确实很有作用。为了避免一些朋友在使用后出问题又无法解决,我在后面也附上了问题解决方法。

  我们知道,无论是Ext3还是ReiserFS,都有三种日志方式:

1) Journal Data Writeback
2) Journal Data Ordered
3) Journal Data

  三者的不同点,简单得说就是实际数据被写入文件系统以及相关日志的时间不同。默认系统采用的是Journal Data Ordered方式。如果采用Journal Data Writeback方式,能够有效提高系统速度,只不过这是有代价的:一旦系统崩溃,在通过日志恢复后,你可能只能得到一些旧的数据,而不是最新数据。所以,在修改前,请三思,如果你是对当前工作进度的备份要求非常苛刻的人,最好不要使用这个办法。

  那么,接下来就介绍一些具体的修改办法,首先, 如果你是Ext3系统,需要进行以下步骤,否则可能在重新启动时出错:

sudo tune2fs -o journal_data_writeback /dev/hda1

  这是人工在重启之前把文件系统设置为writeback模式。用下面这个命令来确认是否得到了执行:

sudo tune2fs -l /dev/hda1

  千万注意,ReiserFS文件系统不用这样。

  然后sudo vim /etc/fstab,在你的root分区mount属性中增加

data=writeback

  这一句,使其看起来是这样的:

/dev/hda1 / ext3 defaults,errors=remount-ro,atime,auto,rw,dev,exec,suid,nouser,data=writeback 0 1

  保存,然后sudo vim /boot/grub/menu.lst,在下面两行加上粗体属性:

# defoptions=quiet splash rootflags=data=writeback
# altoptions=(recovery mode) single rootflags=data=writeback

  这样的话,即使升级内核,增加的标志也会保持,不会被覆盖。最后运行sudo update-grub即可。

  ok,再提醒一句,这样做是比较冒险的。我知道你很有冒险心理,所以一旦重新启动出问题时,请用一下方法解决:
将系统重新启动到恢复模式下,在命令行下输入

mount -o remount,rw /dev/sdXX/

  这个sdXX就是你的硬盘分区,这样就允许你修改硬盘上的fstab和menu.lst文件,将改变还原,然后在正确的系统中再去思考到底哪里出了问题。

杂项

  1. 上面已经介绍,/etc/init.d/下面的都是启动脚本,默认这些脚本是按顺序启动的,实际上,如果你使用的是SATA 或SCSI,可以并行启动这些脚本程序,加速启动过程。而如果你的机器配置较老,则最好还是不要修改。修改方法是通过命令

sudo vim /etc/init.d/rc

找到并修改该行:
CONCURRENCY=none
为:
CONCURRENCY=shell

  2. 长期使用 Ubuntu 后有一种感觉,那就是在 GNOME 中启动应用程序时,速度越来越慢。在 Ubuntu 英文论坛那边看到一个技巧,可以对这个问题起到改善作用。打开 /etc/hosts 文件,可以看到类似下面的内容:

127.0.0.1 localhost
127.0.1.1 windstorm

  现在,只需在第一行的末尾加上主机名即可

127.0.0.1 localhost windstorm
127.0.1.1 windstorm

  保存后,重启系统,更改生效。

  3. Pango是一个着重于国际化的,用于输出和文本渲染的库,但是这个库可能导致firefox等一些程序有着过高的cpu占用资源。我们可以

sudo vim /etc/environment

  然后在其中添加:
MOZ_DISABLE_PANGO=”1″

  这样就可以禁用Pango了。

参考文章:
1. Hacking Ubuntu to Improve Performance
2. HOWTO: Tweak your ext3 filesystem for a performance boost

上一篇:还记得那个提速 8 倍的IDEA插件吗?VS Code 版本也发布啦!


下一篇:周鸿祎带头,十家安全公司接受了这些尖锐拷问