RedHat의 권장 튜닝 프로파일 이해


8

우리는 ~ 1000 대의 서버에 조정 (및 numad)을 출시 할 예정이며, 대부분은 NetApp 또는 3Par 스토리지의 VMware 서버입니다.

RedHats 문서에 따르면 virtual-guest프로파일을 선택해야합니다 . 그것이하고있는 일은 여기에서 볼 수 있습니다 : tuned.conf

VMware와 NetApp / 3Par 모두 충분한 스케줄링을 수행해야하므로 IO 스케줄러를 NOOP로 변경하고 있습니다.

그러나 조금 조사한 후 왜 그들이 증가 vm.dirty_ratio하고 있는지 잘 모르겠습니다 kernel.sched_min_granularity_ns.

내가 vm.dirty_ratio40 %로 증가 하는 것은 20GB 램을 가진 서버의 경우, vm.dirty_writeback_centisecs처음으로 치지 않는 한 8GB가 주어진 시간에 더러워 질 수 있음을 의미합니다 . 그리고이 8GB를 비우는 동안 더티 페이지가 해제 될 때까지 애플리케이션의 모든 IO가 차단됩니다.

dirty_ratio를 증가시키는 것은 아마도 우리가 더 큰 캐시를 가지므로 피크에서 더 높은 쓰기 성능을 의미 할 것입니다. 그러나 다시 캐시가 채워질 때 IO가 상당히 더 긴 시간 (몇 초) 동안 차단 될 것입니다.

다른 하나는 그들이 증가하는 이유 sched_min_granularity_ns입니다. 올바르게 이해하면이 값을 늘리면 epoch ( sched_latency_ns) 당 시간 조각 수가 줄어들어 실행중인 작업이 작업을 완료하는 데 더 많은 시간을 소비한다는 것을 의미합니다. 스레드가 거의없는 응용 프로그램에는 매우 유용하지만 예를 들어 이해할 수 있습니다. 많은 스레드가있는 아파치 또는 다른 프로세스는 비생산적입니까?

답변:


7

짧은 대답은 모든 튜닝이 추측적이고 empiricial 데이터로 백업 할 때만 가치가 있다는 것입니다. 그것을 측정하십시오. 마음에 들지 않으면 조정하십시오.

더 긴 대답 :

dirty_ratio를 늘리면 쓰기 성능이 향상 될 수 있습니다 .IO가 상당히 더 오랜 시간 동안 차단됩니다

더티 비율을 높이면 시스템이 쓰기를 차단해야하는 상태가 될 가능성이 줄어 듭니다. 단점은 정전시 더 많은 메모리를 사용하고 데이터 손실 위험이 높다는 것입니다.

작업을 실행하면 작업을 완료하는 데 시간이 더 많이 걸립니다.

프로세스는 일반적으로 타임 슬라이스가 만료되기 전에 산출됩니다. VM의 문제점은 시스템이 다른 VM과 CPU 및 L1 / L2 캐시를 놓고 경쟁 할 수 있다는 것입니다. 사전 선점 때문에 높은 수준의 작업 전환은 처리량에 큰 영향을 미칩니다. 일반적으로 VM에 배포되는 응용 프로그램의 종류는 CPU에 바인딩 된 응용 프로그램입니다 (웹 서버, 응용 프로그램 서버).

예, 처리량 증가 (모든 유형의 응용 프로그램에 적용)는 대기 시간이 길어 지지만 후자는 대부분의 트랜잭션이 밀리 초가 걸리는 마이크로 초 단위입니다. 실시간 기능 / 매우 낮은 대기 시간이 필요한 경우 VM을 사용하지 않아야합니다.


진짜 이것들은 단지 지침 일뿐입니다. 취향에 맞게 조정하십시오. 그래도 여전히 VM에 권장되는 "마감일"스케줄러를 사용합니다.
ewwhite

1
@ewwhite deadline적절한 스토리지가있는 VMware에서 NOOP 대신 권장 하는 이유는 무엇 입니까?
espenfjo 2016 년

@espenfjo 글쎄, RedHat이 권장하기 때문에 deadline...하지만 내 대답을 참조하십시오.
ewwhite 2016 년

12

tuned-adm 구성 일정은 다음과 같습니다.

나는 그것들을 표 형식으로 보는 것이 도움이된다고 생각합니다. 주목해야 할 것은 기본 RHEL6 설정이 빠르다 는 것입니다 ! 다른 하나는 엔터프라이즈 스토리지 및 가상 게스트 프로파일이 가상 게스트 측의 스왑 피스 감소를 제외하고는 동일하다는 것입니다 (맞습니다).

조정 된 프로필

스토리지 I / O 엘리베이터에 대한 권장 사항은 스토리지 계층에 대한 몇 가지 추상화 계층이 있습니다. RDM을 사용하거나 가상 머신에 스토리지를 직접 제공하는 경우 noop 스케줄러를 사용하는 것이 좋습니다. 그러나 NFS 또는 VMFS에서 작동하기 때문에 마감일 스케줄러가 제공 하는 추가 조정 옵션이 여전히 좋습니다.

실행중인 시스템에서 조정 된 프로파일을 즉석에서 변경할 수 있으므로 문제가있는 경우 응용 프로그램과 특정 환경 및 벤치 마크를 사용하여 테스트하십시오.


1
알았어 고마워 왜 당신이 deadline지금 원하는지 이해 :)
espenfjo 2016 년

8

Summit의 Shak 및 Larry의 성능 튜닝 비디오를 시청하고 튜닝 된 프로파일에 대해 자세히 설명합니다.

계획된 가장 큰 테이크 아웃 중 하나는 프로파일이 권장되는 시작점이며 모든 환경에 마 법적으로 완벽한 불변의 숫자가 아니라는 것입니다.

하나의 프로필로 시작하여 설정으로 놀아보십시오. 프로덕션과 유사한 테스트 워크로드를 생성하고 비즈니스에 중요한 메트릭을 측정하십시오.

한 번에 하나씩 변경하고 매 반복마다 모든 결과를 기록하십시오. 완료되면 결과를 검토하고 최상의 결과를 제공 한 설정을 선택하십시오. 이상적으로 조정 된 프로필입니다.


Shak & Larry 토크에 대한 링크가 있습니까?
Aaron Copley

2
답변에 비디오 링크를 추가했습니다.
suprjami 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.