다음 커널 매개변수는 R6에서 R7까지 매우 다른 동작을 보여주며 그 이유를 알 수 없습니다. 도움을 주시면 감사하겠습니다.
kernel.sched_min_granularity_ns
kernel.sched_wakeup_granularity_ns
배경:
- 애플리케이션이 이미 RHEL6에서 실행 중입니다.
- 낮은 대기 시간 요구 사항.
- 견고성 기능이 있는 애플리케이션, 즉 대기 시간이 허용 가능한 임계값 수준(미리 정의됨)을 초과하여 증가하기 시작하거나 CPU 사용량이 85%를 초과하면 과부하를 피하기 위해 새 요청 처리를 중지합니다.
- 이제 RHEL7 가상 환경에 배포하려고 하지만 RHEL6에서처럼 CPU를 완전히 활용할 수 없습니다. 55~60%의 활용도를 간신히 달성할 수 있었고 허용 가능한 임계값을 넘어서는 지연 시간 급증이 관찰되었습니다.
노트:
- 애플리케이션 버전은 두 경우 모두 동일합니다(R6/R7).
- 데이터베이스와 구성도 동일합니다.
- 메모리, CPU 설정도 동일합니다.
R7에서는 동작에 영향을 미치는 다음 커널 매개변수를 변경하는 조정된 프로필을 사용합니다.
kernel.sched_min_granularity_ns = 10000000
kernel.sched_wakeup_granularity_ns = 15000000
이 값을 R6 기본값( )으로 변경하면 kernel.sched_min_granularity_ns = 4000000 kernel.sched_wakeup_granularity_ns = 4000000
CPU 사용량을 R6 수준으로 조정하게 됩니다. 하지만 R6에서 동일한 값을 설정했을 때 아무런 부작용도 보이지 않았고 여전히 CPU는 이전과 마찬가지로 85~90%로 확장되었습니다.
그렇다면 동일한 매개변수가 RHEL6 및 RHEL7과 비교하여 매우 다르게 동작하는 이유를 찾고 있습니까?