10/28/09

Làm cho Linux nhanh hơn, nhẹ hơn và mạnh hơn


Làm cho Linux nhanh hơn, nhẹ hơn và mạnh hơn


(Tối ưu hóa quá trình boot, KDE, GNOME, kết nối mạng và nhiều thứ khác)


By Bob Moss   8/10/2009 at 14:15 BST                                                              ZXC232 lược dịch và bổ xung


( Một số chiêu thức dưới đây, nếu công lực chưa đủ thì đừng nên thực hiện. Một số trường hợp cách làm có thể khác nhau trên các bản Linux khác nhau, tác giả viết trên cơ sở openSUSE)

1- CHO LINUX KHỞI ĐỘNG NHANH HƠN.


Bỏ thời gian timeout:


Dùng quyền root mở file /boot/grub/menu.lst trong một trình soạn text và tìm dòng sau đây (thường ở ngay đầu file):

timeout=3

Đây là thời gian chờ để các phần cứng cũ có thể tải các module driver. Đổi timeout=0 sẽ khởi động nhanh hơn được 3 giây.

CHÚ Ý: điều nói trên chỉ đúng nếu trên ổ cứng chỉ cài một hệ điều hành duy nhất là Linux. Khi có từ hai hệ trở lên, thường timeout=10 (giây) là thời gian boot menu chờ người dùng chọn khởi động hệ điều hành nào. Nếu không chọn, hệ điều hành default sẽ được khởi động. Đặt timeout=0 sẽ làm cho bootmenu không xuất hiện nữa, sẽ không chọn khởi động được các hệ điều hành khác).

Tăng tốc ổ cứng.


Nếu ổ cứng có tính năng DMA (Direct Memory Access), có thể tăng tốc đọc dữ liệu bằng lệnh hdparm chạy trong terminal như sau (với quyền root):

hdparm -d1 /dev/hda1

trong đó /dev/hda1 là boot partition của bản Linux đang xét. Tùy máy và cách cài, có thể là hda2, sda5, ...

Trong Gnome có thể cho chạy tự động lệnh này tại System > Administration > Services. Thêm dòng lệnh trên với gksudo ở đầu.

Chi tiết hơn về lệnh này xem tại đây.

Chạy song song các tiến trình khi boot


Dùng quyền root mở file /etc/init.d/rc trong một trình soạn text (gedit hoặc kwrite) rồi tìm dòng sau:

CONCURRENCY=none

Thay none bằng shell, thời gian boot có thể giảm được 1-2 giây.

Tối ưu hóa bộ nhớ


Một cách tốt để tăng tốc Linux là quy định việc sử dụng swap. Swap partition là nơi Linux dùng làm bộ nhớ ảo, lưu các dữ liệu tạm để có thể nạp nhanh vào RAM khi cần. Nếu RAM đủ lớn ( 1GB) thì nên giảm việc dùng swap và tốc độ sẽ tăng đáng kể.

Cách thay đổi mức độ swap xem tại đây.

CHÚ Ý: các cách tăng tốc boot nói trên có lẽ chỉ đúng cho các bản Linux cũ. Các phiên bản Linux gần đây đều cố gắng giảm thời gian boot xuống dưới 10 giây nên các cách trên không giúp được nhiều.

2- GNOME


Dùng preload


Preload là một trình thường trú (daemon) theo dõi các hoạt động hàng ngày để lúc khởi động tải trước các chương trình, file thường dùng nhằm tăng tốc hệ thống.

Trước hết kiểm tra trong danh sách các processes xem preload đã chạy chưa. Nếu không thấy, kiểm tra xem đã cài chưa (Ubuntu thường chưa cài), rồi kích hoạt bằng lệnh:

service preload on

Automatic login


Máy dùng chung thì không nên kích hoạt tính năng này. Nhưng máy cá nhân và không sợ người khác tò mò thì Automatic login đỡ mất thời gian chờ gõ username và password.

Chọn lần lượt System > Administration > Login Window > Security > Enable Automatic Login.

Dùng khung cửa sổ thay cho ảnh cửa sổ


Khi nhấn chuột vào thanh tiêu đề rồi rê một cửa sổ (window) từ chỗ này sang chỗ khác, trong quá trình rê, toàn bộ ảnh cửa sổ vẫn giữ nguyên. Để đỡ cho Gnome khỏi phải làm việc đó (tốc độ sẽ giảm), mở terminal gõ vào lệnh sau:

gconftool-2 --type bool --set /apps/metacity/general/ reduced_resources true

Bây giờ khi rê cửa sổ sẽ chỉ có hình khung rê theo. Chú ý thủ thuật này chỉ có tác dụng nếu không dùng Compiz hoặc các hiệu ứng màn hình.

Làm menu hiện nhanh hơn.


Khi mở các menu Gnome lần đầu, các ảnh của icon được tải từ file nguồn, menu có thể không xuất hiện ngay. Nếu máy đủ mạnh, mở thư mục Home, tạo một file ẩn mới .gtkrc-2.0 (chú ý đầu tên file ẩn có dấu chấm). Sau đó mở file nói trên bằng trình soạn text (gedit) rồi thêm dòng sau:

gtk-menu-popup-delay=0

Save rồi đóng file lại. Log out ra rồi log in lại, menu sẽ xuất hiện nhanh hơn.

3- KDE


Tăng tốc ext3


Có thể tăng tốc đáng kể bằng cách dùng kiểu ghi ổ cứng write-back của hệ thống file ext3. ( ext3 có ba kiểu ghi dữ liệu lên ổ cứng, xem tại đây). Thủ thuật này không chỉ áp dụng cho KDE, mà dùng được cho hầu hết các bản Linux hiện nay không dùng kiểu ghi này ( kiểu ghi mặc định của ext3 là ordered).

Nguyên nhân chính là do các ổ cứng kiểu cũ không hỗ trợ kiểu ghi này. Hiệu quả không rõ lắm trên một máy dùng ở nhà, nhưng sẽ thấy rõ trong những máy ghi ổ cứng nhiều, ví dụ các máy chủ. ( Lưu ý: được cái nọ thì mất cái kia, write-back ghi nhanh nhất nhưng có thể mất dữ liệu, data chậm nhất nhưng an toàn nhất)

Backup file /etc/fstab rồi dùng quyền root mở nó trong một trình soạn text và tìm đoạn sau:

relatime,errors=remount-ro

thay nó bằng đoạn này:

noatime,nodiratime,errors=remount-ro,data=writeback

Dùng quyền root mở file /boot/grub/menu.lst trong một trình soạn text rồi tìm các dòng sau:

# defoptions quiet splash
#altoptions=(recoverymode) single

Thêm đoạn dưới đây vào cuối hai dòng đó:

rootflags=data=writeback

Save file và đóng lại. Mở terminal chạy lệnh update grub.

Tắt IPv6


Hiện IPv6 chưa phổ biến, trình duyệt web Konqueror phải chuyển đổi giữa IPv4 và Ipv6. Có thể tắt IPv6 đi. Cách làm tùy từng bản Linux.

Trong Kubuntu, dùng quyền root mở file /etc/environment và thêm dòng sau:

KDE_NO_IPV6=True

Trong openSUSE, dùng quyền root mở file /etc/sysconfig/windowmanager tìm dòng sau:

KDE_USE_IPV6="yes"

thay yes bằng no.

Automatic login


Vào System Settings, nhấn Advanced tab, nhấn tiếp vào Login Manager > Convenience rồi kích hoạt Auto Login.

Bắt đầu một phiên làm việc trống (empty session)


Khi kết thúc một phiên làm việc (log out hoặc shutdown, restart), KDE4 ghi lại trạng thái phiên đó (các cửa sổ đang mở, các tiến trình đang chạy, …) và trong phiên tới, nó mở lại đúng phiên cũ.

Nếu không cần điều đó, hãy mở System Settings > Advanced > Session Manager, chọn mục Start with an empty session rồi nhấn nút Apply.

4- NETWORK


Dùng hostname là 'localhost'


Dùng quyền root mở file /etc/hosts trong một trình soạn text và thay hai dòng đầu thành như sau:

127.0.0.1 localhost
yourhost 127.0.1.1 yourhost

trong đó yourhost là tên đặt cho máy (ví dụ: zxcdesktop). Nhớ sao lưu file /etc/hosts trước khi sửa vì không phải bản Linux nào cũng tương thích với cách làm trên!

Tối ưu hóa các thiết lập của TCP


Dùng quyền root, mở file /etc/sysctl.conf trong một trình soạn text và thêm các dòng sau:

net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 1

Dòng đầu bỏ các dữ liệu thời gian, bớt được 12k cho mỗi gói tin. Dòng thứ hai kích hoạt việc xác nhận chọn lọc, bớt được các công đoạn kiểm tra mỗi gói tin do đó lưu thông sẽ nhanh hơn.

Metrics và backlogs


Có thể tiếp tục tối ưu hóa TCP bằng cách thêm hai dòng sau vào file nói trên:

net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 2500

Dòng trên tăng tốc kết nối bằng cách tránh không save TCP metric cho từng gói tin. Dòng thứ hai quy định kích thước backlog cho phép.

Với kết nối không dây hoặc Ethernet cũ, backlog khoảng 2000, kết nối cáp 1GB backlog khoảng 5000.

TCP window scaling


Thiết lập này của TCP quy định kích thước gói tin tối thiểu và tối đa có thể gửi và nhận. Kết nối dial-up sẽ nhanh hơn khi kích thước gói nhỏ hơn, ngược lại kết nối băng rộng sẽ nhanh khi kích thước gói tin lớn.

Dùng quyền root mở file /etc/sysctl.conf và thêm vào đó:

net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_wmem = 10240 87380 16777216
net.ipv4.tcp_rmem = 10240 87380 16777216
net.ipv4.tcp_mem = 16777216 16777216 16777216
net.core.rmem_max = 16777216
net.core wmem_max = 16777216

Các số trên tối ưu cho kết nối 2Mbps, nói chung kích thước gói tối ưu tính bằng cách lấy băng thông lớn nhất (maximum bandwidth) chia cho độ trễ (latency). Hai số đó có thể xác định từ www.speedtest.net và kết quả thay đổi thế nào xác định theo www.speedguide.net:8080

( Trong Network Center của Mandriva có mục Advanced Settings cho phép disable Ipv6, TCP Windows Scanling và TCP Timestamps)

5- FIREFOX


Tắt IPv6


Gõ vào thanh địa chỉ: about:config rồi Enter. Xuất hiện màn hình cảnh báo, nhấn tiếp vào nút I'll be carefull.

Trong màn hình mới, gõ vào ô Filter dòng sau:

network.dns.disableIPv6

Chỉ cần gõ vài từ đầu là thông số trên đã hiện lên ở dưới. Kích đúp chuột vào đó để đổi mục Value từ “False” thành “True”. Đóng màn hình config lại.

Hiển thị trang web nhanh hơn


Trong màn hình about:config, nhấn phím phải chuột, chọn New > Interger. Trong màn hình con xuất hiện gõ vào content.notify.backoffcount rồi OK. Trong màn hình con tiếp theo nhập vào số 5 rồi OK. Thiết lập này bảo Firefox không cần chờ cả trang web tải về mới hiển thị.

Tương tự như trên, tạo thông số nglayout.initialpaint.delay rồi gán giá trị bằng 0 (số không). Thông số này quy định Firefox không cần chờ toàn bộ thông tin kết cấu trang tải về xong mới hiển thị trang.

Tối ưu hóa lịch sử duyệt web.

Nếu giảm khối lượng lịch sử duyệt web mà Firefox phải lưu thì nó sẽ xuất hiện nhanh hơn và tiết kiệm ổ cứng. Trong màn hình about:config, gõ vào ô Filter:

browser.history

rồi nhấn đúp chuột vào các thông số browser.history_expires_daysbrowser.history_expires_days_min đổi chúng về giá trị nhỏ hơn.

Tiếp tục chỉnh các thiết lập của TCP


Vẫn trong màn hình about:config , chỉnh các thông số network.http.pipeliningnetwork.http.proxy.pipelining từ “False” thành "True". Đổi giá trị của network. http.pipelining.maxrequests từ 4. thành 8.

(Firefox 3.5 đã đặt sẵn các thông số này giống như trên)

Hiển thị menu nhanh hơn


Trong màn hình about:config, nhấn phím phải chuột chọn New > Integer. Nhập tên thông số mới là ui.submenuDelay và đặt giá trị của nó bằng 0 (số không).

Khi khởi động lại Firefox sẽ thấy menu xuất hiện nhanh hơn đáng kể.

6-PHẦN MỀM.


Truy cập các kho phần mềm


Khi cài đặt, Ubuntu mặc định chọn kho phần mềm dành cho Việt nam (Server for Vietnam) nhưng kho đó ở Mỹ và không nhanh. Nhấn vào Other > Select Best Server, chương trình sẽ test khoảng 300 máy chủ trên toàn thế giới để chọn máy nhanh nhất. Tuy nhiên có điều lạ là mặc dù máy chủ của FPT được đăng ký chính thức trong danh sách đó nhưng thường không được chọn theo cách test trên. Thực tế sử dụng thì kho của FPT là nhanh nhất. Vì vậy không cần test, cuốn danh sách xuống dưới cùng đến mục Vietnam để chọn kho mirror-fpt-telecom.fpt.net.

Mandriva từ bản 2009 không cho chọn kho phần mềm riêng biệt mà theo một mirror list chung. Về nguyên tắc khi download, chương trình sẽ tự chọn kho nhanh nhất. Tuy nhiên, nếu đang download mà kho đó treo phải tắt chương trình cài phần mềm Software Management rồi bật lại để chương trình chọn sang kho khác.

Mandriva có cái dở là thông tin mô tả phần mềm khi cần mới tải về và quá trình tải cũng lâu. Vì vậy tốt nhất là tắt tính năng đó đi ( Control Center > Install & Remove Software > Options > Media Manager > Options > Global Options rồi chọn XML meta-data download policy là never).

Mandriva cho chọn ba chương trình download khác nhau. Vì vậy khi trục trặc có thể chuyển sang chọn chương trình khác, về nguyên tắc aria2 là hay nhất. Thực tế sử dụng thì aria2 chập chờn, lúc rất tốt, lúc lại tịt. Khi đó phải chọn chương trình download khác (curl hoặc wget) cũng ở cùng màn hình Global Options như trên.

Dọn phần mềm thừa


Khi tải phần mềm về cài, Ubuntu lưu các gói cài đặt trong thư mục /var/cache/apt. Khi cài xong, để xóa các gói lưu đó, mở terminal chạy lệnh:

sudo apt-get clean

Xóa các file “mồ côi” bằng lệnh:

sudo apt-get autoremove

Mandriva khi cài xong tự xóa cache. Thỉnh thoảng xóa file “mồ côi” bằng các lệnh:

su

urpme –auto-orphans

OpenOffice.org chạy nhanh hơn


Trong màn hình OpenOffice.org, nhấn vào Tools > Options > Memory:




  • Giảm số bước undo (Number of steps) xuống khoảng 20.

  • Tăng lượng lượng cache dành cho các đối tượng đồ họa trong file (Graphic cache) lên khoảng 128MB (hoặc hơn tùy theo RAM của máy).

  • Đánh dấu chọn mục Enable systray Quickstarter để khởi động trước một phần OpenOffice khi khởi động máy (sẽ xuất hiện một icon trên System Tray).

  • Trong mục Java ở cột bên trái, bỏ chọn mục Use a Java runtime environment (nếu không dùng các tính năng cao cấp của OpenOffice).


7- DÙNG MỘT “BỘ ÁO” NHẸ HƠN.


Ngoài các môi trường đồ họa có sẵn khi cài đặt (KDE hoặc GNOME), Linux còn nhiều “bộ áo” khác (xem thêm ở đây).

Nếu cần nhanh, có thể sắm thêm một bộ áo thể thao, xfce chẳng hạn, để dùng khi cần. Khi không cần lại khoác áo dạ hội KDE4 hoặc áo đi làm GNOME.

Trong Ubuntu, Kubuntu, cài thêm gói phần mềm xubuntu-desktop.(có trong kho phần mềm).

Trong Mandriva, vào Menu > Install & Remove Software:


Ở ô trên cùng chọn Meta packages như trong hình trên. Chọn tiếp mục Xfce ở cột bên trái rồi chọn cài task-xfce-minimal ở cột bên phải.


Trong màn hình Login của Ubuntu, Kubuntu từ 9.04 về trước, chọn Options > Sessions rồi chọn Xfce. Ubuntu, Kubuntu 9.10: nhập username, password rồi chọn Xfce ở đáy màn hình.

Trong màn hình Login của Mandriva, nhấn vào biểu tượng quyển sổ+bút chì để chọn Xfce.

No comments: