Tính năng Transparent HugePage trong RHEL6 và ảnh hưởng
Linux
81
RHEL
2
Kernel
2
White

Bùi Hồng Hà viết ngày 05/06/2015

Transparent HugePage là gì?

Transparent HugePage (THP) là một tính năng của Linux Kernel và được mặc định "bật" trong RHEL6. Tính năng này có đặc thù gì mà RHEL lại mặc định bật tính năng này lên?

Để hiểu được THP, ta quay lại tìm hiểu cách Linux quản lý bộ nhớ. Bộ nhớ trên Linux được chia làm các pages. Mỗi pages có kích thước 4096 bytes. CPUs có một đơn vị phần cứng chuyên chịu trách nhiệm quản lý bộ nhớ gọi là Memory Management Unit (MMU). Bộ phận này quản lý bảng danh sách các pages, mỗi phần tử được tham chiếu qua một page table entry

Có 2 cách tăng danh sách bộ nhớ quản lý được:

  • Tăng kích thước bảng danh sách pages
  • Tăng kích thước mỗi pages

RHEL THP giải quyết việc quản lý bộ nhớ theo cách 2. Kích thước mỗi page thay vì 4KB sẽ tăng lên từ 2MB đến 1GB. Nhờ vậy chỉ với số lượng entry nhỏ, bộ nhớ quản lý được có thể trải ra hàng TB. Ngoài ra HugePage có đặc điểm: HugePage một khi được khởi tạo lúc khởi động sẽ không bao giờ được swap xuống đĩa cứng.

Tại sao dùng Transparent HugePage?

HugePage cũng giúp bảng quản lý page của MMU có ít entry hơn, giảm overhead của việc quản lý bảng này. Ngoài ra do đặc thù của HugePage là không bị swap ra đĩa cứng, swap daemon (kswapd) không cần phải quan tâm đến những page này. Kernel không phải tìm pages này. Như vậy, số lượng pages giảm đồng nghĩa với việc các thao tác với bộ nhớ sẽ giảm, đồng thời giảm bottleneck tại bộ nhớ

Người bị hại bởi HugePage

Transparent HugePage có vẻ là tính năng cải thiện hiệu năng đáng kể và có lẽ vì lý do đó mà RHEL 6 bật chức năng này từ đầu. Tuy nhiên, nếu tìm thử trên google bạn sẽ thấy số lượng "người bị hại" bởi tính năng này cũng không kém. Redis khuyên nên tắt chức năng HugePage để giảm latency. Bật HugePage làm giảm hiệu năng của Riak và Elasticsearch. Các vendor cung cấp giải pháp BigData hadoop như Cloudera cũng khuyến cáo nên tắt chức năng này. Sổ tay cấu hình hệ thống của nhiều sysadmins cũng ghi chú là nên tắt chức năng nàyviết

HugePage có lợi khi nào?

Nhìn danh sách các middleware yêu cầu tắt THP mình đã tự hỏi là ứng dụng kiểu nào thì sẽ có lợi từ chức năng này. Mình thử google và ra một số báo cáo cho thấy là hiệu năng có tăng lên sau khi dùng THP. Báo cáo của IBM cho thấy dùng RHEL6 với THP bật giúp tăng hiệu năng máy chủ WebSphere

alt text
Theo như báo cáo thì hiệu năng tăng khoảng 5%.

Không phải là Linux, nhưng một hãng sản xuất Load-Balancing đã quan sát sự tăng đáng kể của hiệu năng trong sản phẩm của họ bằng cách bật super huge pages (1GB pages!)

Tìm thử thấy có cả nghiên cứu ảnh hưởng tích cực của THP đến OpenMP.

Xem ra THP không hẳn đã hại người :D

Cách tắt chức năng Transparent HugePage

Dù thế nào thì trên trang chính thức của Redhat, họ cũng có viết là:

However, THP is not recommended for database workloads.

Do vậy nếu máy tính đang chạy một trong các ứng dụng bị hại thì ta nên tắt THP. Cách tắt như sau:

Trên RHEL (Redhat Linux, CentOS, Scientific Linux ...)

$ echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
$ echo 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag' >> /etc/rc.local

Trên Ubuntu/Debian, OEL, SLES

$ echo never > /sys/kernel/mm/transparent_hugepage/defrag
$ echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local

Tổng hợp các nguồn tham khảo dẫn trong bài viết

  1. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory-transhuge.html
  2. http://www.ibm.com/developerworks/websphere/techjournal/0909_blythe/0909_blythe.html
  3. http://lwn.net/Articles/374424/
  4. https://lwn.net/Articles/423584/
  5. http://underthehood.meltwater.com/blog/2015/04/14/riak-elasticsearch-and-numad-walk-into-a-red-hat/
  6. http://docs.oracle.com/cd/E37670_01/E37355/html/ol_about_hugepages.html
  7. http://hpc.pnl.gov/mtaap/mtaap07/mtaap_files/noronha.pdf
  8. https://news.ycombinator.com/item?id=9425296
  9. http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_admin_performance.html
  10. https://groups.google.com/forum/#!topic/mechanical-sympathy/DWlziVmyW-w
  11. https://lists.freebsd.org/pipermail/freebsd-hackers/2014-November/046449.html
  12. http://highscalability.com/blog/2015/4/8/the-black-magic-of-systematically-reducing-linux-os-jitter.html
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Bùi Hồng Hà

59 bài viết.
291 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
76 8
Bài viết tổng hợp cơ chế hoạt động của https Chút ít về chữ ký điện tử Chữ ký điện tử là cơ chế bao gồm 3 thuật toán: Thuật toán chọn một khóa...
Bùi Hồng Hà viết hơn 3 năm trước
76 8
White
44 7
Giới thiệu Gần đây thấy bản thân chém gió rất nhiều về MapReduce, Hadoop v.v nhưng chưa thấy có bài viết nào tổng hợp + giải thích cụ thể về MapRe...
Bùi Hồng Hà viết hơn 2 năm trước
44 7
White
36 1
Giới thiệu Google là một công ty dẫn đầu về phần mềm xử lý Big Data. Hầu hết các phần mềm xử lý dữ liệu như Hadoop đều có nguồn gốc ý tưởng từ Goo...
Bùi Hồng Hà viết hơn 2 năm trước
36 1
Bài viết liên quan
White
2 1
Vấn đề Mình sử dụng CentOS cho máy server ở nhà. Các phần mềm cài đặt cho server thường làm theo 2 cách Tải mã nguồn về và tự compile rồi cài và...
Bùi Hồng Hà viết 2 năm trước
2 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
59 bài viết.
291 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!