سؤال

وأنا أحاول لتعقب سبب اختناقات الأداء في تطبيق أنا التصحيح لينكس. العمليات المختلفة المعنية ويبدو أن تنفق الكثير من وقتهم حظر على طلبات I / O، وأنا أتساءل عما اذا كان يعرف أي شخص أي حيل لينكس التي تمكنك من رؤية <م> لماذا يتم حظر عملية معينة / ما الموارد انها انتظر ل؟ هل هناك أي شيء مفيد في /proc على سبيل المثال؟

هل كانت مفيدة؟

المحلول

ومهما العملية هو، يمكنك استخدام top للتحقق من الدولة. ثم هل يمكن تشغيله من خلال الجمالون أو strace . ينبغي أن بالتفصيل ما يجري. إذا لم يكن ذلك ممكنا، وربط <م> هو حتى جدب . أدوات مثل iostat قد تظهر لك بشكل عام ما يحدث (على سبيل المثال إذا كان القرص هو عنق الزجاجة) .

نصائح أخرى

هل يمكن استخدام الأمر strace لنرى ما هي عملية الخاص بك حتى. قد تجد أنه من المفيد أيضا لتشغيل lsof على العملية لمعرفة ما هي الملفات والمآخذ أنه يستخدم.

وstrace هو صديقك، لأنه يمكنك الحصول على الوقت الذي يقضيه في كل استدعاء النظام، بالإضافة يمكنك اختيار واصفات الملفات والنظام استدعاء كنت مهتما في ولكن يمكنك أيضا الحصول على دعم من نواة: إلقاء نظرة على < وأ href = "http://www.latencytop.org/" يختلط = "noreferrer"> latencytop

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top