এই প্রশ্নের বেশ কয়েকটি দিক রয়েছে যা অন্যান্য সরঞ্জামগুলির মাধ্যমে আংশিকভাবে সম্বোধন করা হয়েছে, তবে এমন কোনও একক সরঞ্জাম বলে মনে হচ্ছে না যা আপনি খুঁজছেন এমন সমস্ত বৈশিষ্ট্য সরবরাহ করে।
iotop
এই সরঞ্জামগুলি দেখায় যে কোন প্রক্রিয়াগুলি সবচেয়ে বেশি I / O খরচ করে। তবে এতে নির্দিষ্ট ফাইলের নাম দেখানোর বিকল্প নেই।
$ sudo iotop
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
5 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u:0]
6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0]
ডিফল্টরূপে এটি top
ডিস্ক I / O ব্যতীত সিপিইউর সময়ের জন্য প্রসেসের জন্য নিয়মিত কাজ করে। আপনি -a
স্যুইচটি ব্যবহার করে আপনাকে 30,000 ফুট দৃশ্য দেওয়ার জন্য এটি কোক্স করতে পারেন যাতে এটি সময়ের সাথে সাথে প্রক্রিয়া অনুসারে জমা হয়।
$ sudo iotop -a
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
258 be/3 root 0.00 B 896.00 K 0.00 % 0.46 % [jbd2/dm-0-8]
22698 be/4 emma 0.00 B 72.00 K 0.00 % 0.00 % chrome
22712 be/4 emma 0.00 B 172.00 K 0.00 % 0.00 % chrome
1177 be/4 root 0.00 B 36.00 K 0.00 % 0.00 % cupsd -F
22711 be/4 emma 0.00 B 120.00 K 0.00 % 0.00 % chrome
22703 be/4 emma 0.00 B 32.00 K 0.00 % 0.00 % chrome
22722 be/4 emma 0.00 B 12.00 K 0.00 % 0.00 % chrome
i * সরঞ্জামগুলি (ইনোটিফাই, আইওয়াচ ইত্যাদি)
এই সরঞ্জামগুলি ফাইল অ্যাক্সেস ইভেন্টগুলিতে অ্যাক্সেস সরবরাহ করে তবে তাদের নির্দিষ্ট ডিরেক্টরি বা ফাইলগুলিতে বিশেষভাবে লক্ষ্যবস্তু করা দরকার। পারফরম্যান্সের সমস্যাগুলি ডিবাগ করার সময় কোনও অজানা প্রক্রিয়া দ্বারা একটি দুর্বৃত্ত ফাইল অ্যাক্সেস সন্ধান করার চেষ্টা করার সময় তারা এগুলি সহায়ক নয়।
এছাড়াও inotify
ফ্রেমওয়ার্কটি অ্যাক্সেস করা ফাইলগুলি সম্পর্কে কোনও বিবরণ সরবরাহ করে না। কেবল অ্যাক্সেসের ধরণ তাই এই সরঞ্জামগুলি ব্যবহার করে যে পরিমাণ এবং পিছনে সরানো হচ্ছে সে সম্পর্কে কোনও তথ্য উপলব্ধ নেই।
iostat
প্রদত্ত ডিভাইস (হার্ড ড্রাইভ) বা পার্টিশনে অ্যাক্সেসের ভিত্তিতে সামগ্রিক কর্মক্ষমতা (পড়ুন এবং লেখাগুলি) দেখায়। তবে ফাইলগুলি এই অ্যাক্সেসগুলি উত্পন্ন করছে এমন কোনও অন্তর্দৃষ্টি দেয় না।
$ iostat -htx 1 1
Linux 3.5.0-19-generic (manny) 08/18/2013 _x86_64_ (3 CPU)
08/18/2013 10:15:38 PM
avg-cpu: %user %nice %system %iowait %steal %idle
18.41 0.00 1.98 0.11 0.00 79.49
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda
0.01 0.67 0.09 0.87 1.45 16.27 37.06 0.01 10.92 11.86 10.82 5.02 0.48
dm-0
0.00 0.00 0.09 1.42 1.42 16.21 23.41 0.01 9.95 12.22 9.81 3.19 0.48
dm-1
0.00 0.00 0.00 0.02 0.01 0.06 8.00 0.00 175.77 24.68 204.11 1.43 0.00
blktrace
এই বিকল্পটি খুব নিম্ন স্তরের। এটিতে ফাইল এবং / অথবা আইওডগুলি অ্যাক্সেস করা হচ্ছে তার পক্ষে দৃশ্যমানতার অভাব রয়েছে, কেবল কাঁচা ব্লক নম্বর।
$ sudo blktrace -d /dev/sda -o - | blkparse -i -
8,5 0 1 0.000000000 258 A WBS 0 + 0 <- (252,0) 0
8,0 0 2 0.000001644 258 Q WBS [(null)]
8,0 0 3 0.000007636 258 G WBS [(null)]
8,0 0 4 0.000011344 258 I WBS [(null)]
8,5 2 1 1266874889.709032673 258 A WS 852117920 + 8 <- (252,0) 852115872
8,0 2 2 1266874889.709033751 258 A WS 852619680 + 8 <- (8,5) 852117920
8,0 2 3 1266874889.709034966 258 Q WS 852619680 + 8 [jbd2/dm-0-8]
8,0 2 4 1266874889.709043188 258 G WS 852619680 + 8 [jbd2/dm-0-8]
8,0 2 5 1266874889.709045444 258 P N [jbd2/dm-0-8]
8,0 2 6 1266874889.709051409 258 I WS 852619680 + 8 [jbd2/dm-0-8]
8,0 2 7 1266874889.709053080 258 U N [jbd2/dm-0-8] 1
8,0 2 8 1266874889.709056385 258 D WS 852619680 + 8 [jbd2/dm-0-8]
8,5 2 9 1266874889.709111456 258 A WS 482763752 + 8 <- (252,0) 482761704
...
^C
...
Total (8,0):
Reads Queued: 0, 0KiB Writes Queued: 7, 24KiB
Read Dispatches: 0, 0KiB Write Dispatches: 3, 24KiB
Reads Requeued: 0 Writes Requeued: 0
Reads Completed: 0, 0KiB Writes Completed: 5, 24KiB
Read Merges: 0, 0KiB Write Merges: 3, 12KiB
IO unplugs: 2 Timer unplugs: 0
Throughput (R/W): 0KiB/s / 510KiB/s
Events (8,0): 43 entries
Skips: 0 forward (0 - 0.0%)
fatrace
এটি লিনাক্স কার্নেলের একটি নতুন সংযোজন এবং একটি স্বাগত, তাই এটি কেবল উবুন্টু ১২.১০ এর মতো নতুন ডিস্ট্রোজে রয়েছে। আমার ফেডোরা 14 সিস্টেমে 8-) এর অভাব ছিল।
এটি inotify
কোনও নির্দিষ্ট ডিরেক্টরি এবং / অথবা ফাইলগুলিকে লক্ষ্য না করেই একই অ্যাক্সেস সরবরাহ করতে পারে ।
$ sudo fatrace
pickup(4910): O /var/spool/postfix/maildrop
pickup(4910): C /var/spool/postfix/maildrop
sshd(4927): CO /etc/group
sshd(4927): CO /etc/passwd
sshd(4927): RCO /var/log/lastlog
sshd(4927): CWO /var/log/wtmp
sshd(4927): CWO /var/log/lastlog
sshd(6808): RO /bin/dash
sshd(6808): RO /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): R /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): O /etc/ld.so.cache
sh(6808): O /lib/x86_64-linux-gnu/libc-2.15.so
উপরেরটি আপনাকে প্রসেস আইডি দেখায় যা ফাইল অ্যাক্সেস করছে এবং কোন ফাইলটি এটি অ্যাক্সেস করছে, তবে এটি আপনাকে কোনও সামগ্রিক ব্যান্ডউইথের ব্যবহার দেয় না, সুতরাং প্রতিটি অ্যাক্সেস অন্য কোনও অ্যাক্সেসের জন্য পৃথকযোগ্য।
তো এখন কি করা?
fatrace
বিকল্প শো সবচেয়ে প্রতিশ্রুতি অবশেষে একটি টুল যা আপনি ডিস্কের সমষ্টিগত ব্যবহার দেখাতে পারেন প্রদানের ইনপুট / আউটপুট অ্যাক্সেস করা ফাইল, বরং অ্যাক্সেস করছেন প্রসেস চেয়ে উপর ভিত্তি করে।
তথ্যসূত্র