Tại sao chọn hạt nhân có độ trễ thấp so với hạt nhân chung hoặc thời gian thực?


105

Sau khi cài đặt Ubuntu Studio 12.04, tôi thấy rằng nó sử dụng hạt nhân có độ trễ thấp. Tôi đã tìm kiếm tại sao và làm thế nào để thay đổi trở lại thời gian thực hoặc chung chung. Nhưng có vẻ như phần này của Linux đã không được đề cập nhiều.

Q: Tại sao chọn hạt nhân có độ trễ thấp so với hạt nhân chung hoặc thời gian thực?

PS: Tôi đã đọc các câu trả lời từ này câu hỏi và này đường bưu điện.


3
+1 vì đó phải là một câu hỏi khá hay nếu mọi người đều bối rối. TÔI VẪN không biết sự khác biệt giữa các hạt nhân có độ trễ thấp, chung và thời gian thực. Nếu -realtimelà thời gian thực, thì những gì -rtđứng cho? Và có chuyện gì với -preemptkernel? Tôi sẽ cảm ơn gemue2010, anh ấy đã làm một công việc khá tốt để giải thích nó, nhưng nó vẫn không giải thích mọi thứ.
Hitechcomputergeek

Câu trả lời:


61

Đây là một số hướng dẫn đơn giản được cung cấp để giúp bạn hiểu hạt nhân nào và theo thứ tự nào, bạn nên kiểm tra để phù hợp với trường hợp sử dụng của mình.

  • Nếu bạn không yêu cầu độ trễ thấp cho hệ thống của mình thì vui lòng sử dụng kernel -generic.
  • Nếu bạn cần một hệ thống có độ trễ thấp (ví dụ để ghi âm thanh), vui lòng sử dụng hạt nhân -preeem làm lựa chọn đầu tiên. Điều này làm giảm độ trễ nhưng không hy sinh các tính năng tiết kiệm năng lượng. Nó chỉ có sẵn cho các hệ thống 64 bit (còn được gọi là amd64).
  • Nếu hạt nhân -preeem không cung cấp đủ độ trễ thấp cho nhu cầu của bạn (hoặc bạn có hệ thống 32 bit) thì bạn nên thử hạt nhân -lowlatency.
  • Nếu kernel -lowlatency không đủ thì bạn nên thử kernel -rt
  • Nếu kernel -rt không đủ ổn định cho bạn thì bạn nên thử kernel -realtime

Nguồn trợ giúp Ubuntu

Vì vậy, nó phụ thuộc vào những gì bạn sẽ làm với distro studio của bạn. Đối với hầu hết người dùng cần chung thời gian phản hồi nhanh của người dùng cuối sẽ chỉ hoạt động tốt, đối với những người khác cần thực hiện chỉnh sửa video chuyên nghiệp trong đó ngay cả việc giảm khung hình đơn giản cũng không thể chấp nhận được, nhân thời gian thực là cần thiết.

Để có một bài viết blog dễ hiểu hơn, hãy đọc liên kết này


1
Tôi đã đọc bài viết trước bạn đã đăng. Về thứ hai, những sự thật đó đáng tin cậy bao nhiêu?
Starx

Vâng, các bài kiểm tra được đề cập ở đó nói chuyện của chính họ. Nếu nhóm Ubuntu đã chọn Độ trễ ở vị trí đầu tiên, thì đó phải là một lý do cho nó. VÌ bạn muốn biết sự khác biệt, bây giờ bạn làm. Vấn đề được giải quyết?
fan hâm mộ Ubuntu

5
Không .. tôi không nghĩ vấn đề đã được giải quyết. Nếu câu trả lời của bạn làm bất cứ điều gì, nó làm tăng sự tò mò của tôi nhiều hơn.
Starx

9
Có bất kỳ điều này vẫn còn đúng trong năm 2015? Các -preempt, -rt-realtimehạt nhân không còn tồn tại
naught101

51

Tôi là tác giả của blogpost được liên kết bởi người hâm mộ ubfox: http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/

Bài đăng trên blog không trình bày bất kỳ sự thật, đó chỉ là lý thuyết . Thực tế, đó là cách nó hoạt động: bộ xử lý "dừng" thường xuyên hơn để xem liệu có một số quy trình đòi hỏi sự chú ý ngay lập tức. Điều đó có nghĩa là các quy trình đó sẽ được thực hiện trước các quy trình khác, vì vậy bạn sẽ không bỏ qua các khung khi mã hóa hoặc có thời gian trễ lớn giữa các lần nhấp chuột và cái chết của kẻ thù. Điều đó không có nghĩa là tất cả các quy trình sẽ kết thúc sớm hơn: thực tế CPU đang mất một phần thời gian lớn hơn để quyết định quá trình nào sẽ được thực hiện tiếp theo và thực hiện chuyển đổi ngữ cảnh. Vì vậy, tổng thời gian thực hiện dài hơn và đó là lý do tại sao không ai chạy kernel có thể truy cập được trên máy chủ web hoặc máy cơ sở dữ liệu. Nhưng một hạt nhân 300Hz (hoặc thậm chí 1000Hz) được ưu tiên là tốt nhất cho các game thủ.

Nhưng ngày nay các bộ xử lý có nhiều lõi, vì vậy khi có một vài quy trình cần sự chú ý, chúng có thể dễ dàng được phân bổ trên một lõi khác thay vì chờ lõi lấy nó.

(stackexchange yêu cầu tôi tham khảo / kinh nghiệm cá nhân: Tôi là một kỹ sư điện tử, noobgamer khát máu liên kết với một số người chơi trò chơi tại http://www.gamezoo.it ).

Vì vậy, theo nguyên tắc thông thường, tôi muốn nói: nếu bộ xử lý của bạn là lõi tứ tần số cao, mạnh mẽ và bạn thường không mở hàng tấn trang web trong khi mã hóa / giải mã / chơi trò chơi (huh), bạn có thể chỉ cần thử hạt nhân chung (hoặc i686 hoặc amd64 nếu chúng tồn tại) và có thông lượng cao nhất có thể (nghĩa là, việc xử lý số thô mà bộ xử lý có thể thực hiện). Nếu bạn gặp vấn đề (chúng thực sự không đáng kể) hoặc máy của bạn hơi mạnh hơn so với đầu thị trường, hãy tìm kiếm sự khinh miệt.

Nếu bạn đang sử dụng máy cấp thấp chỉ có một hoặc hai lõi, thì hãy thử -lowlatency. Bạn cũng có thể thử thời gian thực, nhưng bạn sẽ thấy rằng nó có xu hướng chặn các quy trình cho đến khi những người "thời gian thực" hoàn thành công việc của họ. Tôi tin rằng hạt nhân thời gian thực không phải là "vanilla", nhưng đã áp dụng bản vá CONFIG_PREEMPT_RT. Tôi nghĩ rằng hạt nhân thời gian thực chỉ dành cho những người phải xây dựng một ứng dụng duy nhất trên các hệ thống nhúng, vì vậy người dùng máy tính để bàn thông thường không nên có lợi ích thực sự bởi vì họ thường chạy một số lượng ứng dụng hợp lý cùng một lúc.

Cuối cùng, các tùy chọn kernel có liên quan nhất nếu bạn muốn tự biên dịch lại kernel của mình để có một máy tính để bàn có độ trễ thấp là:

PREEMPT=y

và:

CONFIG_1000_HZ=y

Để thêm một số quyền hạn, bạn có thể kiểm tra cái này:

CONFIG_NO_HZ=y

Tôi nhận thấy bạn đề cập đến việc duy trì các máy chủ, tôi đang cố gắng tìm ra hạt nhân tốt nhất cho máy chủ chuyên dụng nguồn van (cụ thể là CSGO). hầu hết các luồng CS tôi tìm thấy đều liên quan đến goldsrc cần kernel 1000Hz. Với srcd, lowflency có tệ không? nếu nó không thành vấn đề thì tôi sẽ chỉ sử dụng mức thấp như hiện tại (tôi tách các lõi cpu cho các máy chủ srcd 128 tick vì dù sao nó cũng không thực sự được hưởng lợi từ đa luồng).
Vincent De Smet

Hữu ích để biết những lời khuyên, tôi sẽ hoàn toàn thay đổi để phòng ngừa. Tôi không vội vàng như vậy tôi muốn hạt nhân của tôi hoạt động như một tên cướp biển bẩn thỉu.
userDepth

4

Từ tài liệu được trích dẫn ở trên ( http://www.versalogic.com/mediacenter/whitepapers/wp_linux_rt.asp )

  1. một hệ thống thời gian thực mềm sẽ giảm độ trễ trung bình nhưng không đảm bảo thời gian đáp ứng tối đa.
  2. Một hệ thống thời gian thực cứng đáp ứng thời hạn mong muốn mọi lúc (100 phần trăm), ngay cả trong tải hệ thống trong trường hợp xấu nhất.
  3. Theo Yaghmour [4], "Giao dịch theo thời gian thực với các đảm bảo, không phải với tốc độ thô".

Bài báo nói rằng nhân cứng thời gian thực không có khả năng đáp ứng hoặc bị ràng buộc về thời gian là tài sản quan trọng nhất vì vậy đôi khi họ trì hoãn hoạt động không quan trọng dẫn đến trì hoãn nhưng đối với mức độ thấp hoặc nhân thời gian thực mềm khác cố gắng giảm độ trễ chung giúp ích trong hầu hết trường hợp. Do độ trễ giảm, hệ thống dường như nhanh. Đọc bài viết cẩn thận.


Điều đó đúng nhưng chúng ta cần biết biến thể nhân nào phù hợp với hệ thống thời gian thực.
Melebius

0

Tôi có chiếc máy tính xách tay cũ này với AMD A6-4400M kép ở tốc độ 1600 MHz, tôi sử dụng một cách tiết kiệm khi tôi ra khỏi văn phòng, chủ yếu để đọc email và duyệt các trang web thông thường. Có một cái gì đó, có thể được kết nối với các bản cập nhật phần mềm, khiến nó không phản hồi. Một cái gì đó như gõ một tá ký tự mà không nhìn thấy cái đầu tiên. Thường thì các widget hỏi liệu tôi có nên bỏ quá trình không.

Sau sudo apt-get install linux-lowlatencyvà khởi động lại, nó trở nên trơn tru và đáp ứng. (uname -r 5.0.0-20-lowflency.) Thật tuyệt vời, tôi nên chuyển đổi từ nhiều năm trước. Hãy để tôi nhấn mạnh câu trả lời của Seven: trừ khi bạn muốn tận dụng tối đa một số máy chủ đang hoạt động, hãy tìm kiếm sự khinh miệt !

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.