Làm cách nào tôi có thể chuyển đổi giữa các bộ lập lịch CFS và BFS?


Câu trả lời:


7

Bạn sẽ phải tải xuống, vá và biên dịch kernel của riêng bạn vì BFS hiện không phải là một phần của kernel chính. Hạt nhân chính chỉ chứa một bộ lập lịch và không có nghĩa là có nhiều bộ lập lịch trong cùng một cơ sở mã, hoặc thậm chí các bộ lập lịch có thể chuyển đổi nhanh chóng (đó là điều thậm chí có thể được thực hiện). Nó chỉ đơn giản là quá phức tạp, và không đáng nỗ lực.

Vì vậy, để có được BFS trên hệ thống của bạn:

Tuy nhiên, lợi ích của việc chạy BFS so với CFS là rất nhỏ, đặc biệt là với các phiên bản kernel mới hơn. Hãy nhớ rằng CFS liên tục được cải thiện.


Tôi đã biên dịch kernel 4.0.5 với bản vá BFS nhưng bộ lập lịch không được liệt kê. BFS đã được kích hoạt trong việc tạo ra menuconfig. Tôi không hiểu tại sao.
shantanu

9

Đã nghiên cứu điều này một chút, dường như chỉ có hai bộ lập lịch cho Linux: CFSBFS .

Cách đơn giản nhất để cài đặt BFS trong Ubuntu 10.10 là bản vá PPA :

sudo add-apt-repository ppa:chogydan/ppa 
sudo apt-get update
sudo apt-get install linux-image-generic-ck linux-headers-generic-ck

Bạn cũng có thể cài đặt bản vá bằng Trung tâm phần mềm Ubuntu như được mô tả trong "PPA là gì và tôi sử dụng chúng như thế nào" .

Bản vá cài đặt một kernel (đã vá) mới, sẽ xuất hiện trong menu GRUB khi khởi động với hậu tố "-ck". Chuyển đổi giữa các bộ lập lịch bằng cách khởi động lại và chọn kernel thích hợp trong menu boot.


Về hiệu suất

Trong trường hợp của tôi, chạy Folding @ Home trong nền trên máy tính để bàn (tám luồng F @ H trên tám lõi trên Intel i7 2600K), BFS tốt hơn đáng kể: Phản hồi trên máy tính để bàn nhanh hơn (không phải là một sự khác biệt lớn, nhưng chắc chắn đáng chú ý) trong khi ứng dụng nền F @ H nhanh hơn 20-25%.

Trong kịch bản này, xử lý đồng thời việc sử dụng máy tính để bàn tương tác và các tác vụ nền nặng cho CPU chạy dài, CFS có xu hướng để một lõi không hoạt động trong thời gian dài. BFS xuất hiện tốt hơn nhiều khi sử dụng tất cả các lõi 100% cho các tác vụ nền trong khi vẫn cung cấp phản hồi nhanh cho các tác vụ trên máy tính để bàn tương tác.

Có lẽ không có bộ lập lịch duy nhất nào sẽ thực hiện tối ưu dưới mọi kết hợp tải có thể, nhưng có những trường hợp BFS tốt hơn.


3

Mặc dù vậy, phần dưới đây hoạt động với tôi trên YMMV chính xác (Ubuntu 12.04).

BFS là một phần của pf-kernel

Cách tốt nhất để cài đặt BFS trên hệ thống Ubuntu ngày hôm nay (tháng 12 năm 2013) dường như là cài đặt pf-kernel , về cơ bản là một hạt nhân tiêu chuẩn với một loạt các bản vá hiệu năng được áp dụng. Những bản vá này bao gồm:

  • BFS (Bộ lập lịch CPU cho độ trễ thấp trên các máy có ít hơn 16 lõi CPU)
  • BFQ (Bộ lập lịch đĩa I / O được tối ưu hóa cho độ trễ thấp dưới tải nặng)
  • TuxOnIce (ngủ đông nhanh hơn)

Hướng dẫn trên web

Tôi đã tìm thấy một số hướng dẫn về cách cài đặt các pf-kernelgói cho Ubuntu trong bài viết. Nhận hiệu suất máy tính để bàn Linux tốt hơn và nhiều hơn nữa với pf-kernel . '- Tuy nhiên, các hướng dẫn này có phần lỗi thời, vì nó chỉ ra một nguồn không tồn tại cho Debian có liên quan gói. Nhưng tôi đã tìm thấy chuỗi pf-kernel của Ubuntu cho Ubuntu Ubuntu (trên các pk-kerneldiễn đàn) có đề cập rằng các gói Debian có thể được tải xuống từ tài khoản Dropbox của người dùng diễn đàn big_bum .

Cài đặt pf-kernel

Máy tôi cài đặt là một máy tính xách tay 32 bit cũ, vì vậy tôi đã bắt đầu bằng cách tải xuống các yêu cầu linux-headerslinux-imagegói vào một thư mục trên máy của tôi được gọi ~/kernel.

(Chuyển đến tài khoản Dropbox đã đề cập ở trên để tìm phiên bản 64 bit và / hoặc phiên bản mới hơn của các gói này.)

Sau đó, tôi đã làm theo các hướng dẫn trên mạng Nhận hiệu năng máy tính để bàn Linux tốt hơn và nhiều hơn nữa với pf-kernel , và thực hiện các lệnh sau:

$ cd ~/kernel
$ sudo dpkg -i *.deb

Mọi thứ dường như hoạt động trơn tru, vì vậy tôi khởi động lại.

Kiểm tra nếu nó hoạt động

Một kiểm tra nhanh dường như chỉ ra rằng nó hoạt động, ví dụ lệnh uname -abáo cáo rằng tôi đang sử dụng pf-kernel:

Linux siobhan 3.12.2-pf + # 6 SMP PREEMPT Thứ hai ngày 2 tháng 12 19:09:51 EET 2013 i686 i686 i386 GNU / Linux

cat /sys/block/sda/queue/schedulercho thấy BFQ bây giờ là bộ lập lịch đĩa hiện tại (cho sdađĩa):

noop deadline cfq [bfq] 

14/11/2016 Tôi đã khớp các phiên bản kernel (3.13) để đảm bảo khả năng tương thích trình điều khiển mặc định của nvidia. Nó làm việc mà không gặp trở ngại. Thanh danh đến zrjm ... ..!
keepitsimpleengineer

1

Vá và cài đặt kernel mới với BFS. Bạn phải sử dụng hạt nhân sepatare, không có cách nào sử dụng cả hai trong cùng một hình ảnh hạt nhân (đặc biệt là để xoay chúng khi đang di chuyển)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.