ฉันจะแสดงรายการไฟล์ที่ใช้ IO มากที่สุดได้อย่างไร


11

ซอฟต์แวร์การจัดการเอกสารของฉันใช้งาน IO จำนวนมากและฉันต้องการทราบว่าไฟล์ใดที่เข้าถึงได้มากที่สุด

มีเครื่องมือลินุกซ์ที่จะให้ฉันรายการของไฟล์ IO การบริโภคด้านบนเช่น iotop แต่สำหรับไฟล์ทุกสองสามวินาที?

ที่อาจมีลักษณะ:

$ thetool
THRPUT   R/W/SWP FILE
40MB/s   write   /usr/alfresco/repo/1283421/1324928.doc
12MB/s   read    /usr/alfresco/cache/3928dh29f8if
11MB/s   read    /tmp/239398hf2f024f472.tmp

ผมมองในหน้าคนของiotop, lsof, straceและพวกเขาดูเหมือนจะไม่ได้มีคุณสมบัติดังกล่าว


คุณสามารถเขียน post-processor เพื่อรับข้อมูลนี้จาก 'strace' แต่เท่าที่ฉันรู้ไม่มีเครื่องมือดังกล่าวอยู่ (เครื่องมือดังกล่าวจะพลาดการดำเนินการที่เกิดขึ้นผ่าน 'mmap')
David Schwartz

คำตอบ:


2

ฉันคิดว่าการวัด "จำนวนไบต์" ของคุณนั้นผิด พิจารณาการเข้าถึงสองทาง หนึ่งอ่าน 10MB จากไฟล์ ส่วนอีกอันอ่านทุก ๆ 512th ของไฟล์ในช่วง 10MB แรก "จำนวนไบต์" จะสูงกว่า 512 เท่าสำหรับการเข้าถึงครั้งแรกเมื่อเทียบกับครั้งที่สอง ถึงกระนั้นพวกเขาทั้งสองก็จะทำการโหลดที่เหมือนกันอย่างแม่นยำบนระบบย่อย I / O

หากคุณสามารถยอมรับ "จำนวนการปฏิบัติงาน" ซึ่งเป็นเรื่องที่ดีหรือไม่ดีเท่า "จำนวนไบต์" แสดงว่าคุณมีสิ่งที่คุณสามารถวัดได้จริง inotifywatchโปรแกรมทำอย่างนี้และก็น่าจะเป็นส่วนหนึ่งของการกระจายของinotify-toolsแพคเกจ

มันจะบอกคุณทันทีว่าไฟล์ใดที่ประกอบไปด้วยการเข้าถึงเป็นจำนวนมากและมันจะช่วยให้คุณแก้ไขปัญหาที่เกิดขึ้นจริงได้


ไอโซโทปใช้ MB / s เป็นตัวชี้วัดไอโซโทปผิดหรือเปล่า? +1 สำหรับคำแนะนำ inotifywatch ของคุณตัวอย่างในหน้า man เป็นสิ่งที่ฉันต้องการและสิ่งที่ฉันอธิบายในคำถามของฉัน ขอบคุณมาก!
Nicolas Raoul

ถูกต้อง แต่ 'iotop' ไม่สามารถระบุไฟล์ได้ แต่ปิดกั้นอุปกรณ์เท่านั้น ดังนั้นมันอาจช่วยให้คุณระบุกระบวนการปัญหาและ / หรือระบบไฟล์ / อุปกรณ์ที่มีปัญหา แต่ไม่ใช่ไฟล์ที่เข้าถึง คุณอาจต้องรวบรวมชิ้นส่วนต่าง ๆ จากเครื่องมือต่าง ๆ
David Schwartz

ฮืมน่าสนใจขอบคุณ! ฉันกำลังเล่นกับ inotifywatch ตอนนี้และฉันจะตรวจสอบสิ่งที่ฉันสามารถทำได้
Nicolas Raoul

0

ครั้งแรกของทั้งหมดที่จะชี้แจง: ไม่มีสิ่งดังกล่าวเป็น"ไฟล์เสีย IO" ไฟล์เป็นวัตถุแบบพาสซีฟ เป็นโปรแกรมที่เปิดใช้งาน IO (โดยทั่วไปคือการอ่าน / เขียนไฟล์) และพวกเขาสามารถเข้าถึงไฟล์ได้ไม่มากก็น้อย ดังนั้นการส่งผ่านที่คุณกล่าวถึงในเรื่องการไฟล์จริงจะมีความรู้สึกไม่มาก ข้อมูลที่เป็นประโยชน์เกี่ยวกับไฟล์อาจเป็นความถี่ที่พวกเขาเข้าถึงและแก้ไข นี้สามารถตรวจสอบโดยใช้notifywait -m /some/file/or/directory(จากเครื่องมือ inotify ) หรือระบบที่ซับซ้อนมากขึ้นเช่นFAMหรือเด็กจรจัด


ฉันจะอธิบาย "throughput" นี้ (คำอื่น ๆ อาจจะเหมาะสมกว่าขออภัยสำหรับภาษาอังกฤษของฉัน) เป็นปริมาณของไบต์ที่อ่าน / เขียนจาก / ไปยังไฟล์โดยเฉพาะในช่วงหนึ่งวินาที (รวมสำหรับแต่ละกระบวนการที่เข้าถึงไฟล์ในช่วงนั้น วินาที) ฉันหวังว่ามันจะสมเหตุสมผลมากขึ้น inotifywait, fam, gamin ขออภัยเพียงบอกฉัน "File X ได้รับการแก้ไข / อ่าน" ซึ่งน่าสนใจ แต่ไม่ใช่สิ่งที่ฉันกำลังมองหา
Nicolas Raoul
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.