본문 바로가기

Skills/Linuxworld

[LWN] Adding a Huge Zero Page

기사 원문 : http://lwn.net/Articles/517465


이건 이달 초에 발간된 위클리 매거진에 실려있는 기사인데, 이미 공개된거라 여기에 쓸까말까


고민하다가, 어차피 남들이 보는것도 좋지만, 사실 내 공부가 더 중요하기 때문에 블로깅하는것이므로,


부끄럼없이 다뤄보기로 하겠다.. 물론 Transparent Huge Pages 를 먼저 다뤄야 좋겠지만,


이건 조금 더 복잡한 내용이 필요하므로 그 Huge Page 의 성능적 이슈를 해결하기 위해 나온,


Huge Zero Page 컨셉에 대해서 먼저 간략하게 알아볼 것이다.



코멘트들을 보면 재밌는게, KVM 같은 HugeTLB 를 사용하는 환경에서 HZP 로 인한 잇점과,


벤치마킹이나 PoC 등 몇몇 프로세스 테스팅등에서, HZP 로 인해 프로그램 코드의


특별한 수정 없이 퍼포먼스에 큰 향상을 볼 수 있었다는 얘기도 있다는거..

내 생각에도 이 Huge Zero Page 는


특히나 가상화 및 대용량 In-memory DB 의 발전을 위해서라도 반드시 사용되어져야 하는


기능이지 않을까 싶다..


솔직히 HZP 를 얘기하기 전에 우선 Zero Page 에 대한 더 상세한 설명과,


또한 Transparent Huge Page 나 TLB 에 대한 상세 설명이 필요하긴 했으나,


내 생각에는 늦은 커널 공부에는 작은기능부터 거꾸로 올라나가서, 왜 이 기능이 나타나게되었고,


이 기능들을 필요로한 핵심 매카니즘이 어떤건지에 대해서 거슬러 올라가는것이,


그나마 가장 나은 방법이라고 생각하기 때문에, HZP 에 대해서만 얘기해 보았다.


PS. Transparent HugePages 에 대한 것은 2011 년에 이미 Corbet 에 의해, 커널문서로

작성되어있고, 관련된 파라메터들도 잘 설명되어 있다...

기회가 되면 이것에 대한 실제 벤치마킹등을 이용한 테스트도 포스트 해보고 싶다.


PS2. 아마 다음포스팅은 정말로 HugeTLB 에 대한 글이 되야 할것 같다.

회사 Product 도 연관된 부분들이 많아서 ( 특히 Middleware 나 DB )


PS3. 사실 부족한 이해력으로 LWN 기사만 보고 즉석테스트 정도로만 해서 정리한 글이므로,

언제든지 잘못 이해한 부분이 있으면 지적질 좀 해주라고.. 제발..


기사 원문 : http://lwn.net/Articles/517465