ทำไมเวลา "ของจริง" ถึงสูงกว่าเวลาที่“ ผู้ใช้” และ“ sys” รวมกันมาก?


19

ฉันดำเนินการและtimeมีคำสั่งมากมาย (เช่นnslookup) ผ่านSSHและฉันรวบรวมเวลาทั้งหมดที่จำเป็นสำหรับการให้บริการโดยนัยเพื่อให้สมบูรณ์ (เช่นDNS ) ดังนั้นฉันจึงรวบรวมuserและsysเวลาตามrealเวลานับเวลาที่กระบวนการของฉันปิดกั้นซึ่งฉันไม่ต้องการ ... ฉันเดา

แต่การทดสอบบางอย่างของฉันมีผลลัพธ์เช่น:

real 3m22.033s
user 0m0.009s
sys 0m0.014s

ฉันทำการทดสอบเหล่านี้ในกล่อง linux ที่มีทรัพยากร จำกัด แต่ถึงกระนั้นrealเวลาก็ยังสูง นี่จะบ่งบอกว่ากล่องนั้นยุ่งมากที่ใช้กระบวนการต่าง ๆ หรือไม่? มันยังคงถูกต้องหรือไม่ที่จะเพิ่มขึ้นuserและsysเวลาที่จะรู้ว่าบริการใช้เวลาเท่าไหร่?

คำตอบ:


22

Realคือเวลาทั้งหมดที่กระบวนการใช้เพื่อยกเลิก (นั่นคือความแตกต่างระหว่างเวลาเริ่มต้นและเวลาหยุด):

$ time sleep 3

real    0m3.002s
user    0m0.000s
sys     0m0.000s

ในรายการนี้ผู้ใช้และsysอ้างถึงเวลาที่ใช้ตามลำดับในโหมดผู้ใช้และโหมดเคอร์เนล เหล่านี้ยังไม่รวมเวลาที่ใช้ในขณะที่การใช้งานในการนอนหลับของรัฐ กระบวนการเข้าสู่โหมดสลีปเมื่อมีการร้องขอโดยเจตนาหรือเมื่อกำลังรอให้ IO (การเชื่อมต่อเครือข่าย / การเข้าถึงดิสก์ / การโต้ตอบผู้ใช้) พร้อมใช้งานหรือรอให้กระบวนการอื่นสิ้นสุดลงเนื่องจากขาด CPU ที่มีอยู่เมื่อระบบมีภาระสูงมาก ฯลฯ

โดยปกติแล้วถ้าคุณโทรtimeบนwget, จริงจะตรงกับเวลาในการดาวน์โหลดใช้เวลาใช้ควรจะมีเพียงเล็กน้อย (ยกเว้นกรณีที่wgetมีการขอให้ดำเนินการประมวลผลข้อมูลที่เข้มข้น) SYSควรมีขนาดเล็ก (บางเวลาอาจจะมีการใช้จ่ายในการจัดการกับบัฟเฟอร์ย้ายข้อมูลกลับ จากพื้นที่เคอร์เนลไปยังพื้นที่ผู้ใช้)


ฉันขอโทษที่ฉันเพิ่มwgetไปยังคำถามฉันไม่ได้ทำtimeแต่ขอบคุณสำหรับคำอธิบายว่า การบอกว่าrealรวมถึงการปิดกั้นเวลาเช่นการรอเครือข่าย IO ทำให้ฉันคิดว่าจะรวมเวลานั้นด้วยเพราะฉันกำลังทดสอบเครือข่ายจริง ๆ ขอขอบคุณ.
มูฮัมหมัด Gelbana

คุณช่วยยืนยันสิ่งต่อไปนี้เพื่อทดสอบประสิทธิภาพของเครือข่ายและการตอบสนองของเครื่องสอบถามว่าเป็นDNSเซิร์ฟเวอร์หรือเครื่อง pinged เพียงพอที่จะวัดrealเวลาได้หรือไม่
Muhammad Gelbana

@ MuhammadGelbana: เวลาจริงนี้เป็นเพียงนาฬิกาจับเวลาไม่มีอะไรเพิ่มเติม หากคุณปล่อยให้ping3 นาที 22 มันจะกลับมา 3 นาที 22 มันไร้ประโยชน์ในกรณีนี้ (และที่จริงแล้วมันไร้ประโยชน์เป็นเกณฑ์มาตรฐานส่วนใหญ่แล้วผลที่ได้ขึ้นอยู่กับปัจจัยภายนอก)
Stéphane Gimenez

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