Tối ưu hóa Ubuntu 13.04 - Part 2 - Ubuntu Việt Nam

Latest

Saturday, July 13, 2013

Tối ưu hóa Ubuntu 13.04 - Part 2

Trong [Part1], tôi đã nói về các phương pháp cơ bản để tối ưu hóa Ubuntu. Trong Part2 này, các phương pháp tối ưu hóa Ubuntu sẽ phức tạp hơn nhưng chúng sẽ khiến hiệu năng sử dụng Ubuntu tăng lên mạnh mẽ nhất. Vì phức tạp hơn nên tôi sẽ viết kỹ hơn để bạn cân nhắc tốt hơn.

5. Preload

Ứng dụng Preload sẽ quan sát những ứng dụng bạn sử dụng thường xuyên nhất và nó sẽ yêu cầu hệ thống cung cấp bộ nhớ đệm để tải trước một số tập tin của các ứng dụng đó vào RAM, do vậy sẽ các ứng dụng đó sẽ khởi động nhanh hơn. Để cài đặt Preload bạn chạy dòng lệnh phía dưới.
Open Terminal$run code:~$
sudo apt-get install preload
Sau khi cài đặt, Preload sẽ bắt đầu và bạn không nhất thiết cần phải thiết lập cho nó. Ứng dụng này đặc biệt có ích cho các ứng dụng khởi động chậm như LibreOffice, Eclipse, Photoshop các trình duyệt Web. Tuy nhiên, nó không giúp hệ thống thay đổi ngay tức khắcPreload cần một khoảng thời gian để thu thập dữ liệu.
Có lẽ bạn sẽ đặt câu hỏi :"Nếu Preload tải trước một số tập tin vào RAM thì nó có tiêu hao nhiều dung lượng RAM không?". Câu trả lời: "Preload sẽ tiêu hao một phần dung lượng RAM nhưng là không đáng kể. ". Theo tìm hiểu của tôi về vấn đề này trên nhiều diễn đàn Linux: với hệ thống có 1GB RAM, Preload với thiết lập mặc định, ứng dụng sẽ tiêu hao khoảng từ 60-85Mb RAM ~ 10% RAM.  
Để chứng minh tác dụng của Preload, tác giả của Preload - ông Behdad Esfahbod, đã viết một bài báo, trong đó ông đưa ra một số số liệu mẫu cho các hiệu ứng tốc độ của Preload: 

Ứng dụng Thời gian khi không sử dụng Preloadiện Thời gian khi sử dụng Preload % Cải thiện
Desktop Login 30s 23s 23%
OpenOffice.org Writer 15s 7s 53%
Firefox 11s 5s 55%
Evolution 9s 4s 55%
Gedit Text Editor 6s 4s 33%
Gnome Terminal 4s 3s 25%

Biểu đồ tốc độ khởi động khi sử dụng/không sử dụng Preload
Bạn nên biết số liệu trên được tác giả Behdad Esfahbod đưa ra một khoảng vài năm trước đây. Vì vậy, với các hệ thống máy tính mạnh mẽ hiện nay, thời gian khởi động của các ứng dụng có thể không giống bảng số liệu bên trên. Ví dụ: thời gian khởi động Google Chrome của tôi giảm từ 9s đi xuống 3s và Photoshop ( qua nền Wine) từ 16s đi xuống 8s, sau khi sử dụng Preload. 
Vì vậy, lời khuyên của tôi là: nếu bạn có những ứng dụng thường xuyên sử dụng và thời gian khởi động của ứng dụng đó chậm thì bạn nên sử dụng Preload.i

6. Bộ nhớ ảo
Trước kia, định nghĩa Bộ nhớ ảo là công nghệ "phân vùng một không gian đĩa (HDD) để hỗ trợ  bộ nhớ vật lý (RAM)". Nhưng hiện nay bạn có 2 lựa chọn về loại bộ nhớ ảo cho mình: trên đĩa cứng (swap disk) hoặc trực tiếp trên RAM (z-Ram). Theo ý kiến của tôi: nếu bạn chỉ có 1GB RAM thì nên sử dụng Swap Disk, còn nếu bạn có 2GB RAM hoặc dưới 4GB RAM thì bạn nên sử dụng z-Ram.

* z-Ram :
z-Ram cài đặt rất đơn giản và rất an toàn. Đối với các phiên bản Ubuntu từ 12.04 trở lên, bạn sử dụng dòng lệnh dưới để cài đặt z-Ram
Open Terminal$run code:~$
sudo apt-get install zram-config
Đối các phiên bản cũ hơn từ 12.04 trở xuống như 11.10, 11.04 LTS:
Open Terminal$run code:~$
sudo apt-add-repository ppa:shnatsel/zram sudo apt-get update sudo apt-get install zramswap-enabler
Sau khi cài đặt z-Ram, chỉ cần khởi động lại và thưởng thức điều tuyệt vời mà z-Ram đem lại. Sử dụng lệnh "free -m" trên Terminal hoặc System Monitor để kiểm tra z-Ram đã hoạt động hay chưa.

* Swap Disk
So với z-Ram, Swap Disk cài đặt phức tạp hơn và kém an toàn hơn, vì có thể bạn phải phân vùng một không gian trên đĩa cứng ở định dạng linux-swap. Ngoài ra, bộ nhớ ảo loại Swap Disk sẽ chậm hơn rất nhiều so với bộ nhớ ảo loại z-Ram. Vì vậy, hãy cân nhắc để lựa chọn dạng bộ nhớ ảo này.
Có nhiều người khi phân vùng ổ cứng để cài đặt Ubuntu (dạng ext3,ext4), đã chọn cách tạo ngay phân vùng Linux Swap và Ubuntu sẽ tự động kích hoạt chế độ bộ nhớ ảo. Nhưng cũng có nhiều người không tạo phân vùng Swap khi cài đặt Ubuntu, họ tạo phân vùng  Swap bằng cách chỉnh kích thước các ổ cứng sau khi đã cài đặt xong Ubuntu - phương pháp này không an toàn. Một người bạn của tôi đã phải chờ đợi hơn 4 giờ vì anh ấy chia phân vùng Swap 2GB từ một phân vùng hơn NTFS 150GB ! - anh ấy đành phải chờ đợi vì nếu anh ta cancel thì có khả năng mất toàn bộ dữ liệu ở phân vùng NTFS đó. Vì lí do trên, tôi sẽ chỉ nói về cách tạo phân vùng Swap theo dạng file. 
Ví dụ: bạn muốn tạo file Swap có dung lượng 1GB(1024 MB), chạy dòng lênh bên dưới
Open Terminal$run code:~$
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
Một file tên "swapfile" có dung lượng 1GB sẽ được tạo ra. Bạn có thể thay đổi dung lượng file swap, thay "1024" bằng dung lượng bạn mong muốn.
Dung lượng phân vùng Swap tối ưu thường được khuyến cáo là gấp 2 lần so với dung lượng RAM(?). Theo tôi điều này chưa chính xác, vì nó còn phụ thuộc vào thông số chuyển đổi RAM-SWAP ( swappiness) mà muốn. 
Sau đó kích hoạt file đấy thành phân vùng Swap , sử dụng lệnh:
Open Terminal$run code:~$
sudo mkswap /swapfile
Bật bộ nhớ ảo Swap mỗi khi vào Ubuntu:
Open Terminal$run code:~$edit
sudo gedit /etc/fstab
Thêm dòng "/swapfileile swap sw 0  0" vào cuối file và save.
Turn on Swap affer mkswap
7. Sắp xếp lịch trình đọc viết (I/O scheduling)
I/O scheduling hay Input/Output scheduling, chúng ta thường gọi là lịch trình đọc/viết của hệ điều hành lên trên đĩa cứng. Bất kể hệ điều hành nào hiện nay đều có I/O scheduling.
Trên Ubuntu có một chức năng lên lịch đọc/viết có cái tên "BFQ". Chức năng lên lịch trình đọc/viết BFQ cho phép tối ưu hóa tốc độ mở hoặc xử lý của ứng dụng trong khi hệ thống còn đang bận với việc sao chép tập tin dung lượng lớn nào đó. Nếu việc đọc/viết hoạt động không tốt, ứng dụng sẽ mở ra chậm và khả năng hệ thống sẽ crash là khá cao
Chế độ I/O Scheduling mặc định của Ubuntu không có hiệu năng cao bằng chế độ BFQ. Theo nhiều ý kiến trên các diễn đàn Linux, BFQ cho phép ứng dụng tải mở nhanh hơn từ 200-500%.
Dưới đây là bảng số liệu về thời gian khởi động của Firefox khi sử dụng chế độ BFQ và chế độ CFQ (mặc định của Ubuntu) do tác giả Gayan của trang http://www.hecticgeek.com đưa ra. Rõ ràng rằng ở chế độ BFQ, Firefox khởi động nhanh hơn rất nhiều. Bạn có thể tham khảo video kiểm tra sự khác biệt khi sử dụng chế độ BFQ tại đây 
Thời gian khởi động Firefox khi hệ thống đang sao chép một file dung lượng 1,5 GB
Nếu bạn muốn thay đổi chế độ I/O mặc định của Ubuntu bằng BFQ. Trước tiên,  bạn xem phiên bản kernel Ubuntu của bạn:
Open Terminal$run code:~$ uname -a
Tìm phiên bản Kernel tương ứng tại đây. Ví dụ: phiên bản Kernel của tôi là "Linux sudodroid-desktop 3.8.0-25-generic #37-Ubuntu SMP Thu Jun 6 20:47:30 UTC 2013 i686 i686 i686 GNU/Linux" - tôi sẽ tải phiên bản cao hơn là "linux-image-3.8.1-pf_1_i386.deb". Sau đó, bạn chỉ cần cài đặt file vừa tải về.
Chạy dòng lệnh sau:
Open Terminal$run code:~$ sudo gedit /etc/default/grub
Trên file vừa mở ra, tìm dòng "GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”" và thêm vào chế độ I/O bạn muốn sử dụng như : deadline, cfq,bfq,noop bằng cách thêm hậu tố "elevator=MODE" với MODE={deadline/cfq/bfq/noop}. Ví dụ: tôi thêm hậu tố "elevator=bfq"
Change I/O Scheduling Ubuntu
Save file và thoát Gedit. Cuối cùng, chạy lệnh bên dưới - update lại grub và khởi động lại máy tính:
Open Terminal$run code:~$ sudo update-grub
Sau khi đăng nhập lại Ubuntu, kiểm tra lại chế độ I/O bằng lệnh:
Open Terminal$run code:~$
cat /sys/block/sda/queue/scheduler
Kiểm tra chế độ I/O

7 comments:

  1. vậy khi cài đặt ubuntu có nên để phân vùng swap không hay là dùng z-ram hả bạn, máy mình ram 4gb.mình nghe nói là swap hầu như không cần dùng nhưng nên có vì hệ thống sẽ chạy ổn định hơn và một số ứng dụng yêu cầu phải có swap @@

    ReplyDelete
    Replies
    1. Bạn có 4GB RAM thì nên dùng z-Ram, trừ khi bạn phải làm việc với các file dung lượng lớn cao hơn bộ nhớ RAM của bạn thì hãy nghĩ đến việc dùng Swap Disk. Mà ứng dụng nào yêu cầu phải có Swap vậy ? :)

      Delete
  2. Bạn ơi máy mình phiên bản kernel là 3.11.0 ... mà link bạn đưa ra trên bài chỉ có đến 3.8... thấp hơn phiên bản mặc định, vậy thì có tải về để thay đổi chế độ I/O được hay không?

    ReplyDelete
  3. máy mình 1GB RAM dùng z-Ram được không bạn?

    ReplyDelete
    Replies
    1. Được bạn ạ. Với lại 1Gb thì bạn chuyển về môi trường desktop khác nhẹ hơn Unity, chứ không cũng lag lắm.

      Delete
  4. bài viết hay, cám ơn bạn đã chia sẻ
    mời bạn ghé tải app storevn ủng hộ nha

    ReplyDelete

Sponsor