틱리스 및 고해상도 타이머가있는 경우 1000 HZ 리눅스 커널이 필요합니까?


13

서버 성능을 향상 시키려고합니다. 낮은 지터 (10ms 미만의 분산)가 필요한 몇 가지 프로세스가 있습니다.

i7-920 (4 개의 물리적 코어, 8의 HT)에서로드 평균이 최대 4입니다. 코어 사용자 모드의 40 %에서 90 %에 이르는 약 10 개의 프로세스가 있습니다. 시스템 사용량은 총 3 %입니다. 총 CPU 사용량은 최대 80 %입니다.

틱리스 및 고해상도 타이머가 이미 설정되어있는 경우 커널을 100hz에서 1000hz로 설정하면 지터가 향상됩니까?

이 페이지는 여전히 무언가를하고있는 것으로 보입니다. https://lkml.org/lkml/2009/4/28/401

자발적 (PREEMPT_VOLUNTARY)에서 선점 형 (PREEMPT)으로 변경하는 것은 어떻습니까?


OS 배포 정보 / 버전?
ewwhite

우분투 11.10 64 비트 서버 리눅스 3.3 커널.
Bob

많은 사용자 모드로드가 있습니다. 시스템 시간은 비교적 무시할 만하다. 나는 커널 튜너 블 주위에서 춤을 추는 것을 제안하지 않을 것입니다. 아니면 실시간 일정을 확보하는 것이 원하는가?
yrk

시스템 사용량이 적다면 응답성에 아무런 차이가 없습니다.
Bob

답변:


4

서버 성능을 향상 시키려고합니다. 낮은 지터 (10ms 미만의 분산)가 필요한 몇 가지 프로세스가 있습니다.

실시간은 성능을 향상 시키지는 않지만 전체 시스템의 작동 속도는 매끄럽지 만 약간 느려집니다. 즉, 처리량 대 대기 시간입니다. 그것이 실제로 필요한 경우 몇 가지 옵션이 있습니다.

  • 300Hz 또는 1KHz, PREEMPT를 사용하고 틱리스를 사용하지 마십시오
  • 사용은 nice, schedtool필요에 따라 적절한 우선 순위 / 클래스를 지정합니다
  • RT 또는 BFS 시도

틱리스 사용에있어 무엇이 문제입니까?
Bob

1
@Bob는 전원 절약을 위해,하지만 당신은 대기 시간에 대해 신경 경우에 그것의 좋은, 예를 들어, 오프로 권장 ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt
poige

3

낮은 지터가 중요하다면 1000hz와 PREEMPT를 모두 사용하는 것이 좋습니다.

이러한 프로세스가 실제로 시간에 민감하고 생각된다면, 실시간 지향 패치 / 커널 또는 rtprio와 같은 프로세스 레벨 스케줄링 매개 변수가 더 필요할 것입니다.

일반적인 용도는 오디오 서버입니다 (예 : jackaudio의 조언 참조).


3

1) 틱리스를 사용하지 마십시오. 여전히 실험적이며 아직 작업하지 않는 개발자에게 권장되지 않으며 절전에도 도움이됩니다.

2) 완전히 선점 가능한 시스템은 데스크 터의 응답 성을 증가시키는 반면 자발적 선점은 일반적인 용도 (응답 성과 최저점의 혼합)를위한 것입니다. 서버에 SMP (다중 코어)가있는 경우 대부분의 작업이 코어에서 중단없이 실행되므로 일반적으로 1) 시간이 걸립니다 2) 휴지통 캐시

3) 1000Hz는 오버 헤드를 발생시키는 데스크톱 값이지만, 예를 들어 게임 및 물건을 재생할 수 있습니다. 300 hz는 비디오에 권장되는 값이며 (따라서 일정이 조정될 수 있고 여전히 프레임을 놓치지 않을 것입니다) 100Hz는 최상의 처리량을 제공합니다 (낮은 지연 시간 네트워크 구성에는 적합하지 않음).

RT 패치를 사용하지 않고 안정된 상태로 유지하려면 주기적 틱 (안정성) 선점 형 (안정성) 타이머 주파수 (최대 1000, 응답 성이 우수하고 지연 시간이 짧은 경우 100, 최대 처리량이지만 타이머에서 10ms 분해능 (예 : 물건이 10ms 이상 실행 됨)

이것이 다소 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.