Tính năng Transparent HugePage trong RHEL6 và ảnh hưởng
Linux
93
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.
301 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
83 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
83 8
White
45 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 3 năm trước
45 7
White
37 0
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 3 năm trước
37 0
Bài viết liên quan
White
1 0
sudo du sh
t viết gần 3 năm trước
1 0
White
35 10
Thời kỳ mới đi làm tôi nghĩ cứ phải gõ thật nhiều cho quen cho nhớ nhưng lâu dần việc đó cho cảm giác thật nhàm chán. Hiện giờ, những gì tôi hay là...
manhdung viết hơn 3 năm trước
35 10
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
59 bài viết.
301 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á!