ฉันจะวิเคราะห์ปัญหาด้านประสิทธิภาพก่อน / ระหว่างกระบวนการเข้าสู่ระบบได้อย่างไร


17

ฉันจะวิเคราะห์ปัญหาด้านประสิทธิภาพที่เกิดขึ้นก่อนหรือระหว่างกระบวนการเข้าสู่ระบบได้อย่างไร


@JanDoggen: มันเป็นคำถามทั่วไปที่ฉันสามารถชี้ให้คนเห็นว่าพวกเขามีปัญหาที่คล้ายกัน blog.stackoverflow.com/2012/05/encyclopedia-stack-exchange
Der Hochstapler

คำตอบ:


35

ใช้การตรวจสอบกระบวนการ

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

ในกรณีนี้เราต้องการใช้เครื่องมือเพื่อพิจารณาว่าเหตุการณ์ใดในระหว่างกระบวนการบูตใช้เวลานานกว่าจะเสร็จสมบูรณ์

  1. ดาวน์โหลดProcess Monitorและเรียกใช้

  2. ในตัวเลือกเมนูตรวจสอบการเปิดใช้งาน Boot เข้าสู่ระบบ

    เปิดใช้งานการบันทึกการบูต

  3. ในกล่องโต้ตอบผลการตรวจสอบสร้างโปรไฟล์เหตุการณ์และคลิกตกลง

    สร้างกิจกรรมการทำโปรไฟล์

  4. รีบูทระบบและทำซ้ำปัญหาของคุณ เมื่อกระบวนการเข้าสู่ระบบเสร็จสมบูรณ์ให้เริ่มการตรวจสอบกระบวนการ

  5. การตรวจสอบกระบวนการจะแจ้งให้คุณทราบว่าได้รวบรวมกิจกรรมการบูทและจะถามคุณว่าคุณต้องการบันทึกข้อมูลนั้นหรือไม่ ยืนยันกระบวนการโดยการคลิกที่ใช่

    บันทึกกิจกรรมการบู๊ต

  6. เลือกที่เก็บข้อมูลที่เหมาะสมสำหรับ.pmlไฟล์และรอข้อมูลที่จะทำการแปลง เมื่อโหลดข้อมูลแล้วให้แสดงคอลัมน์ระยะเวลาโดยเปิดเมนูบริบทในหนึ่งในส่วนหัวคอลัมน์และคลิกเลือกคอลัมน์ ...

    เลือกคอลัมน์ ...

    ... และตรวจสอบช่องทำเครื่องหมายที่เหมาะสมในกล่องโต้ตอบผลลัพธ์

    ช่องทำเครื่องหมายระยะเวลา

  7. สร้างตัวกรองใหม่โดยเลือกตัวกรอง ... * จากเมนูตัวกรอง **

    เมนูตัวกรอง

  8. สร้างตัวกรองสำหรับคอลัมน์ระยะเวลาที่มีค่ามากกว่า1ซึ่งในกรณีนี้ควรรวมรายการ คลิกเพิ่มเพื่อเพิ่มตัวกรองไปยังรายการและยืนยันการเลือกกับตกลง

    ป้อนคำอธิบายรูปภาพที่นี่

  9. ณ จุดนี้รายการเหตุการณ์ในการตรวจสอบกระบวนการจะแสดงเฉพาะเหตุการณ์ที่ใช้เวลานานกว่า 1 วินาทีจึงจะเสร็จสมบูรณ์ คุณจะต้องการตรวจสอบคอลัมน์ระยะเวลาสำหรับกิจกรรมที่ใช้เวลานานกว่าจะเสร็จสมบูรณ์

    เพื่อวัตถุประสงค์ในการสาธิตนี่คือการเลือกเหตุการณ์ที่ใช้เวลานานกว่า 10 วินาทีในการทำให้เสร็จสมบูรณ์ สิ่งนี้ถูกจับในเครื่องเสมือนเพื่อการสาธิต

    เหตุการณ์ตัวอย่าง
    คลิกเพื่อดูภาพขยาย

    แม้ว่าเหตุการณ์เหล่านี้ไม่จำเป็นต้องเป็นต้นเหตุของการปิดกั้นกระบวนการเข้าสู่ระบบให้เสร็จ แต่การปิดใช้งานบริการการจัดทำดัชนีของ Windows และ Avast Anti-Virus อาจคุ้มค่ากับการติดตั้งนี้

ใช้ xperf

xperf เป็นเครื่องมือวิเคราะห์ประสิทธิภาพจาก Windows Performance Toolkit การใช้และความสามารถในการวิเคราะห์ข้อมูลที่เก็บรวบรวมอาจเป็นเรื่องที่ท้าทาย อย่างไรก็ตามเราจะดูวิธีรวบรวมข้อมูลที่ต้องการและวิธีดูส่วนที่เกี่ยวข้องของข้อมูล

โปรดทราบว่าชุดประเมินและปรับใช้ Windows (ADK) ซึ่งจำเป็นสำหรับสิ่งนี้ใช้ได้กับ Windows 7 ขึ้นไปเท่านั้น

  1. ดาวน์โหลดWindows ADKและติดตั้งคอมโพเนนต์Windows Performance Toolkitเป็นอย่างน้อย

  2. เมื่อการติดตั้งเสร็จสมบูรณ์ให้เปิดพรอมต์คำสั่งที่ยกระดับขึ้น

    พรอมต์คำสั่งที่ยกระดับ

  3. เปลี่ยนเป็นไดเรกทอรีที่คุณต้องการให้ร่องรอยของคุณอยู่ เช่นเดียวกับเดสก์ท็อป

  4. วิธีที่แนะนำ (ตามการใช้ XBOOTMGR เพื่อดักจับบูทช้าหรือล็อกออนช้าที่เกิดจากบูทช้า ) เพื่อดักจับร่องรอยระหว่างบู๊ตคือ:

    xbootmgr -trace boot -traceflags base+latency+dispatcher -stackwalk profile+cswitch+readythread -notraceflagsinfilename -postbootdelay 10

    ระบบจะเริ่มต้นการติดตามและรีบูต

  5. หลังจากรีบูตทำตามคำแนะนำบนหน้าจอ คุณจะถูกขอให้อนุญาตให้กระบวนการรวบรวมเพื่อยกระดับ หลังจากกระบวนการเสร็จสมบูรณ์คุณจะพบการติดตามผลลัพธ์ในโฟลเดอร์ที่คุณเริ่มต้นการติดตาม

    ในกรณีของฉันมันสร้างboot_1.etl(และที่เกี่ยวข้องboot_1.cab) บนเดสก์ท็อป

    เปิด.etlแฟ้มในWindows ประสิทธิภาพการวิเคราะห์

การวิเคราะห์

หลังจากที่คุณเปิดการติดตามคุณสามารถเห็นตัวบ่งชี้ที่เป็นไปได้ของปัญหาของคุณที่ถูกผูกกับฮาร์ดแวร์ ดูอย่างรวดเร็วในการคำนวณ , การจัดเก็บข้อมูลและหน่วยความจำภาพรวมในกราฟ Explorer ที่จะแสดงให้เห็นยอดเขาซึ่งควรจะวิเคราะห์ต่อไป

เพื่อวัตถุประสงค์ในการสาธิตลองดูที่กราฟการใช้ประโยชน์โดยกระบวนการ หากต้องการแสดงเนื้อหาเพียงดับเบิลคลิกที่กราฟเพื่อเพิ่มลงในมุมมองการวิเคราะห์

ภาพรวมของ Windows Performance Analyzer
คลิกเพื่อดูภาพขยาย

โปรดทราบว่าไม่มีกราฟใดแสดงค่าสูงสุดที่เกี่ยวข้อง จุดสีน้ำเงินที่จุดเริ่มต้นเป็นของกระบวนการของระบบและคาดว่าจะเกิดขึ้นในเวลานี้

จุดยอดอื่น ๆ ในกราฟการใช้งาน CPU อาจดูได้ดีกว่าในบริบท ลองเพิ่มกราฟอีกอันลงในมุมมองการวิเคราะห์ กราฟที่เรากำลังมองหาเป็นขั้นตอน Bootกราฟซึ่งตั้งอยู่ในการทำงานของระบบส่วน

Boot Phases
คลิกเพื่อดูภาพขยาย

ในภาพหน้าจอด้านบนฉันยังเพิ่มกราฟเหตุการณ์ทั่วไปที่ด้านล่างเพื่อให้บริบทเพิ่มเติม อย่างไรก็ตามสิ่งที่ควรสังเกตที่นี่คือความจริงที่ว่าจุดสูงสุดที่เห็นได้ครั้งแรกในการใช้งาน CPU เกิดจากบริการ Avast เราสังเกตเห็นแล้วในการวิเคราะห์การตรวจสอบกระบวนการว่ากระบวนการนี้เป็นหนึ่งในกระบวนการที่ใช้เวลาส่วนใหญ่ในกระบวนการบู๊ต

สิ่งที่เราเห็นที่นี่ในตอนนี้เราสามารถเห็นได้ในบริบทของขั้นตอนการบู๊ตนั่นคือจุดสูงสุดที่เกิดขึ้นหลังจากช่วงWinlogon Init (และแม้แต่ในช่วงPost Bootซึ่งเกิดขึ้นเมื่อคุณเห็นเดสก์ท็อปอยู่แล้ว) ดังนั้นจึงถือได้ว่าเป็นไปได้ยากที่กระบวนการนี้จะทำให้เราเกิดปัญหาในช่วงก่อนที่เราจะเห็นเดสก์ท็อป

สิ่งที่เราจะได้รับการมองหากิจกรรมที่เกิดขึ้นในหรือรอบWinlogon Initเฟส เพื่อให้ง่ายขึ้นคุณสามารถเลือกเฟสในกราฟ Boot Phases สิ่งนี้จะเน้นรายการทั้งหมดในกราฟทั้งหมดที่เกิดขึ้นในเฟสนั้น

กราฟที่จะทำให้ดูดีขึ้นแน่นอนว่าเป็นกราฟบริการเนื่องจากส่วนใหญ่จะเริ่มในช่วง Winlogon Init

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

อ่านเพิ่มเติม


xbootmgr จาก WPT ( msfn.org/board/index.php?showtopic=158252 ) เป็นเครื่องมือที่ดีกว่าในการเริ่มต้น ฉันใช้การบันทึก ProcMon เพื่อดูระยะพิเศษของการบูต
magicandre1981

@ magicandre1981: โพสต์ยังไม่เสร็จ;) หากคุณต้องการเพิ่มรายละเอียดเพิ่มเติมเกี่ยวกับ xperf คุณสามารถแก้ไขได้อย่างอิสระ
Der Hochstapler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.