Hạt nhân linux 1000 HZ cần thiết nếu tôi có bộ đếm thời gian tích tắc và độ phân giải cao?


13

Tôi đang cố gắng cải thiện hiệu suất trên máy chủ của tôi. Tôi có một vài quy trình cần jitter thấp (phương sai dưới 10ms).

Tôi có tải trung bình tối đa 4 trên i7-920 (4 lõi vật lý, 8 với HT). Có khoảng 10 quy trình từ 40% đến 90% chế độ người dùng cốt lõi. Sử dụng hệ thống là 3% tổng số. Tổng mức sử dụng CPU là tối đa 80%.

Việc cài đặt kernel từ 100hz đến 1000hz sẽ cải thiện jitter nếu bộ hẹn giờ có độ phân giải cao và không có độ phân giải cao đã được đặt?

Trang này dường như cho thấy nó vẫn làm một cái gì đó. https://lkml.org/lkml/2009/4/11/401

Làm thế nào về việc thay đổi từ tự nguyện (PREEMPT_VOLUNTARY) sang quyền ưu tiên (PREEMPT)?


Chi tiết phân phối hệ điều hành / phiên bản?
ewwhite

Ubuntu 11.10 64 bit máy chủ Linux 3.3.
Bob

Bạn có nhiều chế độ tải người dùng; thời gian hệ thống là tương đối không đáng kể. Tôi sẽ không đề nghị nhảy xung quanh điều chỉnh hạt nhân ở đó. Hoặc có được lịch trình giống như thời gian thực là những gì bạn hy vọng sẽ đạt được?
yrk

Vì vậy, bạn đang nói nếu sử dụng hệ thống thấp, không ai trong số này làm cho sự khác biệt về khả năng đáp ứng?
Bob

Câu trả lời:


4

Tôi đang cố gắng cải thiện hiệu suất trên máy chủ của tôi. Tôi có một vài quy trình cần jitter thấp (phương sai dưới 10ms).

Bất kỳ thời gian thực nào cũng không cải thiện hiệu suất, thực tế nó sẽ làm cho toàn bộ hệ thống chạy mượt hơn nhưng chậm hơn một chút, trên thực tế. Nói cách khác, đó là thông lượng so với độ trễ. Nếu đó thực sự là những gì bạn cần, thì một vài lựa chọn:

  • Sử dụng 300 Hz hoặc thậm chí 1KHz, PREEMPT và không sử dụng tickless
  • Sử dụng nice, schedtoolđể chỉ định mức độ ưu tiên / lớp phù hợp theo nhu cầu của bạn
  • Hãy thử RT hoặc BFS

Có gì sai khi sử dụng tickless?
Bob

1
@ Bob, Đó là tốt cho powersaving, nhưng trong trường hợp mà bạn quan tâm độ trễ, nó được đề nghị để được tắt, cho ví dụ ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt
poige

3

Nếu jitter thấp là quan trọng đối với bạn, vâng, bạn có thể muốn sử dụng cả 1000hz và PREEMPT.

Nếu những quá trình đó thực sự nhạy cảm với thời gian, suy nghĩ, có lẽ bạn sẽ cần một số bản vá / hạt nhân định hướng thời gian thực hơn, hoặc ít nhất là một số tham số lập lịch mức quy trình, như rtprio.

Sử dụng điển hình là máy chủ âm thanh, xem ví dụ lời khuyên từ jackaudio


3

1) Đừng sử dụng tickless, nó vẫn mang tính thử nghiệm cao và không được khuyến nghị cho bất kỳ ai trừ các nhà phát triển làm việc trên nó, nó cũng có nghĩa là để giúp tiết kiệm năng lượng.

2) Hệ thống hoàn toàn có thể sử dụng được cho là để tăng khả năng phản hồi của nhân viên để bàn, trong khi quyền tự nguyện được sử dụng chung (kết hợp giữa phản ứng nhanh và máng thông). Nếu máy chủ của bạn có SMP (nhiều lõi), có lẽ bạn không nên truy cập, vì hầu hết các công việc sẽ được thực hiện trên lõi của chúng và không bị gián đoạn, thường là 1) mất thời gian 2) bộ đệm rác

3) 1000Hz là giá trị máy tính để bàn giới thiệu trên cao, nhưng ví dụ cho phép chơi trò chơi và nội dung. 300 hz là giá trị được khuyến nghị cho video (vì vậy công cụ có thể lên lịch lại và bạn vẫn không bỏ lỡ khung hình), trong khi 100Hz cung cấp máng tốt nhất (mặc dù không hướng đến các công cụ mạng thấp).

Nếu bạn muốn ổn định như mong muốn (không sử dụng các bản vá RT), bạn nên đi: tần số hẹn giờ (ổn định) không ổn định (ổn định) tần số (tối đa cho bạn, 1000 để đáp ứng tốt nhất và độ trễ thấp, 100 cho máng tốt nhất nhưng độ phân giải 10ms trên bộ đếm thời gian, ví dụ: công cụ sẽ chạy ít nhất 10ms)

Hy vọng điều này phần nào giúp.

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.