كيف يمكنني معرفة ما عملية لينكس ينتظر؟
-
03-07-2019 - |
سؤال
وأنا أحاول لتعقب سبب اختناقات الأداء في تطبيق أنا التصحيح لينكس. العمليات المختلفة المعنية ويبدو أن تنفق الكثير من وقتهم حظر على طلبات I / O، وأنا أتساءل عما اذا كان يعرف أي شخص أي حيل لينكس التي تمكنك من رؤية <م> لماذا م> يتم حظر عملية معينة / ما الموارد انها انتظر ل؟ هل هناك أي شيء مفيد في /proc
على سبيل المثال؟
المحلول
ومهما العملية هو، يمكنك استخدام top
للتحقق من الدولة. ثم هل يمكن تشغيله من خلال الجمالون أو strace . ينبغي أن بالتفصيل ما يجري. إذا لم يكن ذلك ممكنا، وربط <م> هو م> حتى جدب أ >. أدوات مثل iostat قد تظهر لك بشكل عام ما يحدث (على سبيل المثال إذا كان القرص هو عنق الزجاجة) .
نصائح أخرى
هل يمكن استخدام الأمر strace
لنرى ما هي عملية الخاص بك حتى. قد تجد أنه من المفيد أيضا لتشغيل lsof
على العملية لمعرفة ما هي الملفات والمآخذ أنه يستخدم.
وstrace هو صديقك، لأنه يمكنك الحصول على الوقت الذي يقضيه في كل استدعاء النظام، بالإضافة يمكنك اختيار واصفات الملفات والنظام استدعاء كنت مهتما في ولكن يمكنك أيضا الحصول على دعم من نواة: إلقاء نظرة على < وأ href = "http://www.latencytop.org/" يختلط = "noreferrer"> latencytop