บน Ubuntu Linux มันเป็นเรื่องปกติหรือไม่ที่ Mandb จะทำงานอย่างต่อเนื่อง


12

ฉันสามารถเข้าถึงโหนด Ubuntu Linux ที่สถาบันของฉันได้ มีการแชร์โหนดระหว่างกลุ่ม แต่โดยทั่วไปแล้วฉันเป็นคนเดียวที่ใช้โหนดนี้โดยเฉพาะ

ฉันใช้การคำนวณแบบขนานบน CPU ทั้ง 8 ตัวในโหนดนี้ การคำนวณของฉันทำงาน แต่เมื่อฉันดูกระบวนการที่ทำงานโดยใช้topผมเห็นกระบวนการเพิ่มเติมที่ระบุว่าผู้ใช้และคำสั่งman ดูเหมือนว่าคำสั่งmandbนี้mandbจะทำงานทุกครั้งที่ฉันดูtopและดูเหมือนว่าจะใช้พลังงาน CPU ( 6 %CPU) และหน่วยความจำ ( 2.5 %MEM) ได้พอtopสมควร

เมื่อฉันมองไปรอบ ๆ บนอินเทอร์เน็ตดูเหมือนว่า:

mandb ใช้เพื่อเริ่มต้นหรืออัพเดตแคชฐานข้อมูลดัชนีแบบแมนนวลซึ่งโดยทั่วไปจะดูแลโดยมนุษย์

เหตุใดจึงmandbรันตลอดเวลาบนโหนดนี้ (ฉันไม่ได้มีปัญหานี้ในโหนดอื่น ๆ ภายในกลุ่มสถาบันของฉันตามtopโหนดอื่น ๆ ) เหตุใดจึงmandbต้องเรียกใช้ตลอดเวลาเนื่องจากฉันไม่ได้ดูคู่มืออยู่ในขณะนี้

กระบวนการนี้น่าจะเป็นกระบวนการแฟนทอมที่ฉันสามารถยุติการใช้งานได้อย่างปลอดภัยkillหรือไม่?


@derobert ฉันไม่ใช่ผู้ดูแลระบบ ตกลงฉันจะถามเขา ขอบคุณ
แอนดรู

คำตอบ:


10

มันไม่ปกติสำหรับmandbการทำงานอย่างต่อเนื่อง เป็นเรื่องปกติที่จะทำงานmandbวันละครั้งในงานcronเพื่อดำเนินงานบำรุงรักษาเช่นการปรับปรุงดัชนีของ man man ที่ติดตั้งและการสร้างหรือตัดแคชของ man page ที่จัดรูปแบบ งานประจำวันควรทำงานในไม่กี่วินาทีอาจจะเป็นไม่กี่นาทีถ้าคุณมีหน้าคนจำนวนมากและดิสก์ช้า หากงานทำงานนานกว่านั้นแสดงว่ามีบางอย่างผิดปกติ

CPU 6% ไม่สูง แต่กระบวนการอาจทำดิสก์ I / O 2.5% ของหน่วยความจำบนโหนดคลัสเตอร์เสียงสูง อาจเป็นไปได้ว่างานนั้นมีการกำหนดค่าผิดพลาดและมองหาที่ที่ไม่ควรเป็นหรือมีข้อผิดพลาดในmandbโปรแกรมหรือมีความล้มเหลวของฮาร์ดแวร์ที่ทำให้เกิดmandbปัญหา

คุณสามารถดูสคริปต์ cron ใน/etc/crontabหรือ/etc/cron.*/*(ตำแหน่งที่แน่นอนขึ้นอยู่กับการกระจาย/etc/cron.daily/man-dbและ/etc/cron.weekly/man-dbเป็นตำแหน่งที่น่าจะเป็น) คุณสามารถดูสิ่งที่เรียกใช้mandbโดยดูที่กระบวนการอย่างใกล้ชิดยิ่งขึ้น: เรียกใช้pstree | lessและค้นหาmandbกระบวนการ การรันps ww 12345(โดยที่ 12345 เป็น PID ของกระบวนการที่ละเมิด) จะแสดงบรรทัดคำสั่งทั้งหมด

นี่เป็นสิ่งที่คุณสามารถวินิจฉัยได้ด้วยตัวเอง แต่ไม่สามารถแก้ไขได้หากไม่ได้รับอนุญาตรูท หากคุณมีสิทธิ์ใช้งานรูทคุณสามารถฆ่าmandbกระบวนการได้อย่างปลอดภัย(ใช้คำสั่งsudo pkill mandbหรือsu -c 'pkill mandb'ขึ้นอยู่กับว่าคุณเป็นรูท) ในกรณีใด ๆ โปรดติดต่อผู้ดูแลระบบของคุณและอธิบายอาการ ให้ข้อมูลทั้งหมดที่คุณสามารถทำได้ (เช่นโปรแกรมใดที่เรียกใช้mandbและมีอาร์กิวเมนต์อะไร)


2

ฉันตรวจสอบสคริปต์ cron มันเป็นเพียงคำสั่งในการอัพเดทดัชนีมนุษย์เร่งค้นหาคู่มือทำงานทุกวันคุณสามารถฆ่ามันได้อย่างปลอดภัย

คุณไม่ชอบเพียงแค่ปิดการใช้งานโดย chmod -x /etc/cron.daily/man-db


2

นี่คือ Heisenbug และเป็นไปได้ว่ามีการแก้ไขใน mandb รุ่นล่าสุด มันเกี่ยวข้องกับ manpages ที่เสียหายลำดับของการข้ามผ่านของระบบไฟล์และการสร้างใหม่ของ mandb ที่เพิ่มขึ้นกลายเป็นการสร้างใหม่ที่ช้ามาก (15 ล้านหน้าผิดพลาดหรือมากกว่านั้นซึ่งใช้เวลาไม่กี่นาทีในการหมุนสนิม)

หากคุณต้องการแก้ไขปัญหาให้เรียกใช้:

sudo mandb --no-purge --debug

และไม่เคยทำงาน mandb มีหรือไม่มี--create --no-purgeจากนั้นตรวจสอบให้แน่ใจว่าคุณมีเวอร์ชันล่าสุดและรายงานข้อผิดพลาดที่ cjwatson สามารถดูได้

หากคุณต้องการขจัดปัญหาให้เรียกใช้:

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

ซึ่งจะปิดการใช้งาน man-db cronjob (ทำงานทุกวัน) และทริกเกอร์ dpkg (ทำงานเมื่อติดตั้งแพ็คเกจ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.