lý do kjournald cho việc sử dụng cao


15

Tôi đang cố gắng tìm hiểu tại sao lại kjournaldphát điên trên máy của mình. Đó là một hộp 8 lõi với vô số bộ nhớ. Nó có tải ~ 50% cpu.

Iotop dường như không chỉ ra bất kỳ quy trình cụ thể nào - một số đợt ghi ở đây và ở đó (chủ yếu là bắt đầu bằng cron, một số thống kê giám sát được tạo, v.v.) Khi tôi sử dụng sys/vm/block_dumpđể thu thập số liệu thống kê ghi, tôi nhận được danh sách như sau:

kjournald(1352): 1909
sendmail(28934): 13
cron(28910): 12
cron(28912): 11
munin-node(29015): 3
cron(28913): 3
check_asterisk_(28917): 3
sh(28917): 2
munin-node(29022): 2
munin-node(29021): 2

Trường hợp kjournaldhành động chỉ là VIẾT.

Tại sao điều đó xảy ra? Tôi nên xem xét điều gì khác để hạn chế hoạt động kjournald một chút? Nó dường như không tương xứng với những gì thực sự được viết.


Bạn đang sử dụng hệ điều hành nào. Bạn có thể đăng thông tin uname.
Soham Chakraborty

Tôi đã có cùng một vấn đề chính xác
Sharen Eayrs

Câu trả lời:


15

kjournaldchịu trách nhiệm cho tạp chí ext3 (hệ thống tập tin nhật ký). Nó được biết là sử dụng rất nhiều CPU dưới một số tải nhất định. Không có gì nhiều để làm ngoại trừ sử dụng hệ thống tập tin khác hoặc vô hiệu hóa ghi nhật ký (thực hiện hiệu quả fs ext2).

Về mặt lý thuyết, bạn có thể sử dụng một trong các chế độ ghi nhật ký ext3 khác và kiểm tra xem việc sử dụng CPU có bị giảm hay không, nhưng hãy nhớ rằng mỗi phương thức là một sự thỏa hiệp về sự an toàn của dữ liệu được ghi vào đĩa. Bạn đã đặt hàng chế độ, chế độ ghi lại và chế độ 'mọi thứ'.

  1. Ra lệnh: nhật ký chỉ siêu dữ liệu, nhưng đảm bảo rằng dữ liệu liên quan đến siêu dữ liệu được lưu trước khi thực hiện các thay đổi siêu dữ liệu cho tạp chí.
  2. writBack: tạp chí chỉ siêu dữ liệu, nhưng không đảm bảo rằng dữ liệu được lưu trước khi tạp chí cam kết.
  3. tạp chí: mọi thứ đều được ghi nhật ký , dữ liệu và siêu dữ liệu. Nó có thể chậm nhưng YMMV.

Bạn đặt chế độ bằng tùy chọn data=khi lắp hệ thống, như thế nào data=ordered.


Không có ý nghĩa gì trong việc thay đổi chế độ ghi nhật ký trái với việc tắt hoàn toàn, nhưng nó thậm chí còn ít ý nghĩa hơn. Vì vậy, mô tả những gì các tùy chọn tạp chí làm kinda vô nghĩa.
poige

3
Các chế độ nhật ký khác nhau thể hiện các hành vi CPU khác nhau. Một số bài kiểm tra ở đây .
coredump

1
@coredump, vẫn vô nghĩa . Không có biểu đồ cho thấy việc sử dụng CPU cho các chế độ ghi nhật ký khác nhau, chỉ có thông lượng. Biểu đồ sử dụng CPU chỉ cho thấy sự khác biệt giữa các FS. Ngoài ra, được đưa vào hoạt động thay vì sự khác biệt đáng chú ý giữa EXT3 và Reiser3 trên biểu đồ đó, rõ ràng rằng dấu chân CPU tổng thể và trung bình được phân tích, trong đó @viraptor có các hoạt động kjournald.
poige

Chúng tôi sẽ đồng ý không đồng ý sau đó. Chỉ kiểm tra trên môi trường của anh ta sẽ cho thấy có sự khác biệt hay không về việc sử dụng CPU. Ngoài ra tôi sẽ không đề xuất ReiserFS, vì chính phủ đã khóa vĩnh viễn đối với tác giả FS :).
coredump

8
Ở đây, lấy cốc hài hước này: \
coredump

4

Theo mặc định, hệ thống tập tin ext3 của bạn sẽ được gắn với atimes được bật. Mỗi khi một tệp hoặc thư mục được đọc / truy cập, hệ thống tệp sẽ phải ghi lại vào các đĩa để cập nhật bản ghi atime này. Điều này có nghĩa là ngay cả khi khối lượng công việc của bạn chủ yếu là đọc, bạn vẫn cần nhấn vào các đĩa để cập nhật thời gian truy cập của từng tệp và thư mục, và đây là phỏng đoán của tôi về lý do tại sao kjournaldquá trình của bạn lại viết quá nhiều khối.

Tắt atime sẽ mang lại hiệu suất cao cho hiệu suất nhưng sẽ phá vỡ sự tuân thủ POSIX. Kiểm tra bài viết Wikipedia này để biết một số thảo luận xung quanh những lời chỉ trích của atime.

Để tắt atimes, chỉ cần thêm noatimevào các tùy chọn gắn kết cho hệ thống tệp của bạn hoặc bạn có thể kết nối lại theo đề xuất của poige. Đây là một ví dụ cho hệ thống tập tin gốc của bạn:

mount -o remount,noatime /

3
Lưu ý rằng các hạt nhân gần đây mặc định relatimedường như là một sự thỏa hiệp chấp nhận được giữa noatimeatime.
Oliver

1

Nếu tính hoàn hảo của dữ liệu không quan trọng: hãy làm điều này

iostat -o -a

Hãy chắc chắn rằng nó thực sự kjournald. Nó là nguyên nhân khiến máy chủ của tôi bị sập.

Thay đổi ổ cứng thành SSD sẽ hoạt động.

Khi bạn thấy kjournald viết 5-10 MB dữ liệu bạn làm

http://ubuntuforums.org/showthread.php?t=56621

sudo tune2fs -O ^has_journal /dev/sda1
sudo e2fsck /dev/sda1

sda1 là tên của phân vùng của bạn

Báo cáo kết quả trong bình luận để tôi có thể kiểm tra thêm.


3
Bạn có nghĩa là iotop, không phải iostat, phải không?
Joe Niland

0

Không theo thứ tự để làm, chỉ đề cập đến:

  1. mount -oremount,noatime /fs/being_over/journaled- như một cú đoán nhanh (dù sao bạn cũng không cho chúng tôi thấy mountngoại hình của bạn như thế nào)
  2. Hãy thử giảm kích thước tạp chí ( tune2fs -J …)
  3. Chuyển sang Reiser3 (mạnh mẽ trong một thời gian dài, vâng. Và không có một tạp chí khó chịu nào như vậy.)
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.