修改個人使用者佈建
在核心設定層面之上,還有很多個人使用者配置的參數,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