opendirectoryd ใช้ 40% ของ CPU


22

ฉันมี MacBook Pro พร้อม Lion 10.7.2, 2.26 GHz CPU และ 2GB DDR3 RAM

ถ้าฉันโทร

top -o cpu

/usr/libexec/opendirectorydกระบวนการสิ้นเปลืองมากขึ้นกว่า 40% ของ CPU

$ ps aux | grep opend                                                                       
root 27834 40,4 0,3 2472048 5780 ?? Rs 6:36PM 167:19.66 /usr/libexec/opendirectoryd

ป้อนคำอธิบายรูปภาพที่นี่


@slhck /usr/libexec/opendirectoryd
juanpablo

คำตอบ:


22

ปัญหาเกี่ยวข้องกับ symlink ที่ไม่ทำงานใน Dropbox ค้นหาโดยใช้:

find ~/Dropbox -type l -printf "%Y %p\n" | grep "^N"

วิธีแก้ไขคือ: ลบ symlinks ที่ไม่ทำงานออก หากfindไม่มีprintfตัวเลือกให้ใช้:

find -L ~/Dropbox -type l

อ้างอิง

เพื่อหา symlinks ที่ตายแล้ว


สงสัยว่าคุณจะมีวิธีแก้ปัญหาแรกในการทำงานกับ BSD findใน OS X ได้อย่างไรคุณต้องติดตั้ง GNU เป็นอย่างน้อยfindutilsเพื่อรับprintfตัวเลือก
slhck

ฉันได้ติดตั้ง findutils find --version 13:17 find (GNU findutils) 4.4.2
juanpablo

โอเคมันไม่ได้มาพร้อมกับ OS X ดังนั้นคำสั่งที่คุณใช้จะไม่ทำงาน
slhck

เวอร์ชัน BSD ของคำสั่ง find ที่แสดงรายการ symlink ที่ใช้งานไม่ได้: find '~/Dropbox' -type l -print0 | xargs -0 file | grep broken
Piotr Czapla

11

ดังที่ได้กล่าวไว้โดย @juanpablo สิ่งนี้อาจเกิดจาก symlinks

เห็นได้ชัดว่าถ้า symlink ชี้ไปที่/homeautofs หรือเปิดอัตโนมัติและใช้ CPU จำนวนมากเพื่อหาว่าสถานที่นั้นไม่มีอยู่จริง

ลองดูที่และ/etc/auto_home/etc/autofs.conf

หากต้องการดูว่าคุณกำลังประสบปัญหานี้หรือไม่ให้ตั้งค่า

AUTOMOUNTD_VERBOSE=TRUE

ตัวเลือกในautofs.confรีสตาร์ท automountd

sudo launchctl stop com.apple.automountd

และตรวจสอบ syslog.log (คุณอาจใช้แอปพลิเคชัน: คอนโซล) คุณได้รับผลกระทบจากปัญหานี้หากคุณเห็นสิ่งนั้น:

May 20 17:53:43 xxx automountd[31709]: od_search failed

วิธีแก้ปัญหาการแก้ไขไฟล์/etc/auto_masterและลบ (หรือกัญชาออก#) /homeบรรทัดที่เริ่มต้นด้วย จากนั้นเรียกใช้:

sudo automount -vc

1
ขอบคุณสิ่งนี้แก้ปัญหาของฉันได้เช่นกันและเกี่ยวข้องกับ Dropbox - ฉันมีลิงก์ที่ชี้ไปยัง/homeโฟลเดอร์ Dropbox ของฉัน (การสำรองข้อมูลที่เหลือจากระบบก่อนหน้า) ซึ่งเป็นสาเหตุของพฤติกรรมนี้ การปิดใช้งาน/homeใน auto_home ได้รับการแก้ไข
zzamboni

1

สำหรับฉันสิ่งที่แก้ไขได้จริง ๆ ก็คือถอดปลั๊กสายอีเธอร์เน็ตจาก iMac ของฉัน มันฟังดูบ้า :) ฉันถูกโจมตีจากข้างนอก bruteforce บน sshd ของฉัน เราเตอร์ที่ฉันมี (จาก UPC, Cisco EPC3925) โดยค่าเริ่มต้นส่งต่อการรับส่งข้อมูลทั้งหมดจากภายนอกไปยังพอร์ตอีเธอร์เน็ตเดียวที่มี เมื่อถอดปลั๊กสายเคเบิลการโจมตีจะหยุดลงเนื่องจาก iMac ถูกทิ้งไว้บน WiFi เท่านั้น

เห็นได้ชัดว่า sshd ใช้ opendirectoryd และนั่นเป็นสาเหตุที่เกิดขึ้น

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