Trên Ubuntu Linux, việc mandb chạy liên tục (rõ ràng là trong nền) là bình thường?


12

Tôi có quyền truy cập vào một nút Ubuntu Linux tại tổ chức của mình. Các nút được chia sẻ giữa các nhóm, nhưng thông thường tôi là người duy nhất sử dụng nút đặc biệt này.

Tôi đang chạy một phép tính song song trên tất cả 8 CPU trên nút này. Tính toán của tôi chạy, nhưng khi tôi xem các quy trình hoạt động bằng cách sử dụng top, tôi thấy một quy trình bổ sung có ghi người dùng manvà lệnh mandb. mandbLệnh này dường như đang chạy mỗi khi tôi nhìn vào topvà dường như nó chiếm một lượng khá lớn năng lượng CPU ( 6 %CPU) và bộ nhớ ( 2.5 %MEM), theo top.

Khi tôi tìm kiếm trên internet, có vẻ như:

mandb được sử dụng để khởi tạo hoặc cập nhật thủ công bộ đệm cơ sở dữ liệu chỉ mục thường được duy trì bởi con người.

Tại sao, sau đó, mandbchạy tất cả thời gian trên nút này? (Tôi không gặp vấn đề này trên các nút khác trong cụm của tổ chức, theotop các nút khác.) Tại sao mandbcần phải chạy mọi lúc, vì tôi hiện không xem hướng dẫn sử dụng?

Đây có phải là quá trình ảo mà tôi có thể chấm dứt an toàn bằng cách sử dụng kill không?


@derobert Tôi không phải là sysadmin. Ok, tôi sẽ hỏi anh ấy. Cảm ơn.
Andrew

Câu trả lời:


10

Nó không bình thường mandbđể chạy liên tục. Nó là điển hình để chạy mandbmột lần một ngày trong một công việc định kỳ, để thực hiện nhiệm vụ bảo trì như cập nhật một chỉ mục của các trang man được cài đặt và xây dựng hoặc cắt một bộ đệm của các trang man được định dạng. Công việc hàng ngày sẽ chạy trong vài giây, có thể là vài phút nếu bạn có nhiều trang man và đĩa chậm. Nếu công việc chạy lâu hơn thế, có gì đó không đúng.

CPU 6% không cao, nhưng quá trình có thể thực hiện I / O đĩa. 2,5% bộ nhớ trên một nút cụm âm thanh cao. Có khả năng công việc bị định cấu hình sai và tìm kiếm nơi không nên hoặc có lỗi trong mandbchương trình hoặc có lỗi phần cứng gây ra sự cố mandb.

Bạn có thể xem các tập lệnh cron trong /etc/crontabhoặc /etc/cron.*/*(vị trí chính xác phụ thuộc vào phân phối; /etc/cron.daily/man-db/etc/cron.weekly/man-dblà các vị trí có khả năng). Bạn có thể thấy những gì được viện dẫn mandbbằng cách xem xét quy trình chặt chẽ hơn: chạy pstree | lessvà tìm kiếm mandbquy trình. Đang chạyps ww 12345 (trong đó 12345 là PID của quá trình vi phạm) sẽ hiển thị dòng lệnh hoàn chỉnh.

Đây là điều mà bạn có thể tự chẩn đoán, nhưng không thể sửa nếu không có quyền root. Nếu bạn có quyền root, bạn có thể giết mandbtiến trình một cách an toàn (sử dụng lệnh sudo pkill mandbhoặc su -c 'pkill mandb', tùy thuộc vào cách bạn trở thành root). Trong mọi trường hợp, liên hệ với quản trị viên hệ thống của bạn và giải thích các triệu chứng. Cung cấp tất cả thông tin bạn có thể (chẳng hạn như chương trình nào được gọi mandbvà với đối số nào).


2

Tôi đã kiểm tra các tập lệnh cron, nó chỉ là một lệnh để cập nhật các chỉ số của con người, tăng tốc tìm kiếm hướng dẫn, chạy hàng ngày, bạn có thể giết nó một cách an toàn.

Bạn không thích nó, chỉ cần vô hiệu hóa nó bằng chmod -x /etc/cron.daily/man-db


2

Đây là một con bọ hung và có thể đã được sửa trong các phiên bản gần đây của mandb. Nó phải được thực hiện với các trang bị hỏng, thứ tự truyền qua hệ thống tập tin và xây dựng lại dần dần của các mandb chuyển thành xây dựng lại đầy đủ rất chậm (15 triệu lỗi trang hoặc lâu hơn, mất vài phút để quay gỉ).

Nếu bạn muốn khắc phục sự cố, hãy chạy:

sudo mandb --no-purge --debug

và đừng bao giờ chạy mandb có --createhoặc không có --no-purge. Sau đó, đảm bảo bạn có phiên bản mới nhất và báo cáo lỗi trong đó cjwatson có thể nhìn thấy nó.

Mặt khác, nếu bạn chỉ muốn thoát khỏi vấn đề, hãy chạy:

echo 'man-db man-db/auto-update boolean false' |sudo debconf-set-selections

sẽ vô hiệu hóa cronjob man-db (chạy hàng ngày) và kích hoạt dpkg (chạy khi các gói được cài đặt).

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.