Arch Linux trở nên không phản hồi từ khugepaged


8

Tôi là một người dùng VMware workstation 10.0.3 nặng và như vậy tôi có 32GB RAM trên hệ thống của mình. Hệ điều hành duy nhất của tôi là Arch Linux, sử dụng Unity cho máy tính để bàn.

Thông thường khi tôi có hai máy ảo chạy với khoảng 3 GB RAM được chỉ định cho mỗi máy, thực sự thường xuyên và trong các khoảng thời gian ngẫu nhiên, toàn bộ hệ thống sẽ không phản hồi trong vài giây.

Chạy "đỉnh" tại một thiết bị đầu cuối, thủ phạm dường như là lệnh khugepaged, nó chạy trong khi hệ thống không phản hồi ở CPU 100% và sau đó biến mất.

Có cách nào để tránh điều này? Tôi đã googled về khugepaged, nhưng tôi dường như chỉ tìm thấy bài viết cổ từ năm 2011 hoặc câu hỏi chưa được trả lời.

Đây là thông số hệ thống đầy đủ của tôi:

  • CPU: Intel i5 4570@3.2GHz
  • RAM 32 GB Corsair Vengeance @ 2400 MHz
  • M / B ASrock Z87 Pro 4

Cài đặt trao đổi của bạn như thế nào? Loại treo đó thường liên quan đến việc sử dụng trao đổi. Bạn có thể kiểm tra trao đổi lần sau khi nó bị treo không? Nó chỉ treo khi chủ động trao đổi?
terdon

Tại sao nó nên trao đổi với RAM 32 GB? Nó không đi đến đâu gần hết RAM vật lý. Tôi có một phân vùng trao đổi 1GB nhỏ - vì nó nằm trên ổ SSD và tôi không muốn lãng phí bất động sản. Tôi đã không thay đổi swappiness, tôi đoán đó là giá trị mặc định.
Angelos Kyritsis

Chà, arch có mặc định là 60 , nghĩa là nó sẽ bắt đầu hoán đổi lâu trước khi hết RAM. Tôi không nói rằng nó trao đổi chắc chắn nhưng có vẻ như nó có khả năng. Hãy thử đặt giá trị thấp hơn.
terdon

Ok, tôi đã đặt nó thành 5. Tôi sẽ cho bạn biết nếu nó tạo ra sự khác biệt.
Angelos Kyritsis

Câu trả lời:


10

Tôi gặp vấn đề tương tự trên Ubuntu. Cách giải quyết tôi sử dụng là:

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag

Nguồn gốc của cách giải quyết là trong một báo cáo lỗi của Fedora, khugepaged ăn 100% CPU . Lỗi không bao giờ được sửa.

Điều này là ít quyết liệt hơn sau đó vô hiệu hóa toàn bộ transparent_hugepagehỗ trợ. Giải thích chi tiết về những gì lệnh thực hiện có thể được tìm thấy trong tài liệu hỗ trợ hugepage trong suốt .


echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag; echo 0 | sudo tee /sys/kernel/mm/transparent_hugepage/khugepaged/defrag
Treviño

@ Treviño, tôi có thể hỏi sự khác biệt là gì với tác giả của câu trả lời đang đề xuất: tại sao người ta nên sử dụng | sudo teethay cho >?
Joma

1
@Joma sudo echo $value > outputkhông hoạt động trong Ubuntu, bạn cần sử dụng teethủ thuật hoặc thực hiện từ sudo -sshell.
Treviño

Nghiêm túc mà nói, tôi yêu bạn vì điều đó, @ pawel-jasinski - lần đầu tiên sau 5 năm tôi thực sự có thể LÀM VIỆC với VMware mà không cần nó thường xuyên đóng băng cả hệ điều hành máy chủ và máy khách.
Simon A. Eugster

1
@Joma Lệnh đầu tiên phải được chạy từ shell root. Với sudo echo X > Y, chỉ echo Xđược chạy dưới quyền root nhưng > Y(đầu ra chuyển tiếp vào một tệp) thì không.
Simon A. Eugster

1

khugepaged có thể là vấn đề, hãy thử như sau:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

điều này đã giúp tôi giải quyết vấn đề này trên linux arch ...


4
Xin chào và chào mừng đến với trang web! Chúng tôi hy vọng câu trả lời sẽ chi tiết hơn một chút ở đây. Có lẽ bạn có thể chỉnh sửa câu trả lời của mình và giải thích lệnh bạn gợi ý làm gì và nó sẽ giúp ích như thế nào?
terdon

1
@ArchUser cũng nếu bạn không chắc đây là giải pháp vui lòng đăng dưới dạng bình luận.
vfbsilva
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.