การใช้งาน IIS App Pool High CPU แม้จะไม่มีการร้องขอ


10

ฉันเพิ่งย้ายเซิร์ฟเวอร์ Windows Server 2008 R2 / IIS 7.5 ไปยังเซิร์ฟเวอร์ใหม่ที่ใช้ Windows Server 2012 / IIS 8

ฉันกำลังประสบกับพฤติกรรมแปลก ๆ จาก IIS เรามีเซิร์ฟเวอร์ที่เหมือนกัน 2 เซิร์ฟเวอร์แต่ละเซิร์ฟเวอร์ใช้งานได้ 2 เว็บไซต์โดยแต่ละแห่งมีแอพของตัวเอง รหัสสำหรับแต่ละเว็บไซต์นั้นเหมือนกัน (แท้จริง ... เหมือนกัน dll และทุกอย่างเพียงการกำหนดค่าที่แตกต่างกันเล็กน้อย)

แอพพูลนั้นถูกตั้งค่าให้รีไซเคิลตามกำหนดเวลาทุก 24 ชั่วโมง แต่ในช่วงระยะเวลา 24 ชั่วโมงนั้นการใช้งาน CPU ของกระบวนการของผู้ปฏิบัติงาน w3wp กระโดดขึ้นทีละ 12.5% ​​(เซิร์ฟเวอร์มีโปรเซสเซอร์ 8 ตัวดังนั้นฉันไม่คิดว่า เรื่องบังเอิญ)

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

ฉันค่อนข้างแน่ใจว่าปัญหานี้ไม่มีอะไรเกี่ยวข้องกับรหัสของฉัน แต่การกำหนดค่า IIS ที่ไม่ดีหรือการเปลี่ยนแปลงใน IIS 8 ที่ทำงานได้ไม่ดีกับการกำหนดค่าฮาร์ดแวร์หรือบางอย่าง

ไม่แน่ใจว่าสำคัญหรือไม่ แต่นี่เป็นเซิร์ฟเวอร์ Rackspace Performance Cloud

นี่คือภาพหน้าจอเพื่อแสดงให้คุณโหลด CPU เมื่อเวลาผ่านไปบนเซิร์ฟเวอร์เหล่านี้ (ลูกศรสีเขียวชี้ไปที่เวลาที่แอพพูลกลับมาใช้ใหม่) คุณจะเห็นว่าแต่ละที่ราบสูงนั้นมีค่าอินทิกรัลรวม 12.5%:

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

มีใครสังเกตพฤติกรรมนี้หรือไม่? ฉันได้พบคำถามนี้จาก 2009 กับคนที่มีสิ่งที่ดูเหมือนจะเป็นปัญหาเดียวกันกับ IIS 6:

IIS w3wp ใช้ cpu สูงโดยไม่มีทราฟฟิก

ความช่วยเหลือใด ๆ ที่ชื่นชมมาก

คำตอบ:


1

มีปัญหาเดียวกันกับ Sharepoint 2013 และ IIS 8 ในปี 2012 ... เราไม่เคยแก้ไขปัญหา แต่ได้ลดระดับเป็น SP2013 ในปี 2008 R2 และทั้งหมดก็ทำได้ดี


2
ชาย. หลังจากงานทั้งหมดที่ฉันเพิ่งย้ายเข้ามานี่ไม่ใช่คำตอบที่ฉันหวังไว้ ... : /
Leland Richardson

1

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


วิธีใช้เครื่องมือวินิจฉัย Debug โดยทางโปรแกรมเมื่อhigh CPU or RAM more 90%ใด
Kiquenet

@Kiquenet คุณสามารถลองถ่ายโอนข้อมูลหน่วยความจำของกระบวนการแล้ววิเคราะห์ในเครื่องอื่นได้ ฉันกำลังเผชิญกับปัญหาที่คล้ายกันและก็สามารถที่จะจับภาพการถ่ายโอนข้อมูลใน <1 นาทีบนเซิร์ฟเวอร์ที่ ~ การใช้งาน CPU 100%
ปยุต Saravagi

ใช่แล้วจับการถ่ายโอนข้อมูลใน <1 นาทีบนเซิร์ฟเวอร์ที่การใช้งาน CPU ~ 100% โดยทางโปรแกรมหรือไม่
Kiquenet

1

นี้จริงๆดูเหมือนโค้ดบางส่วนติดอยู่ในวง จำกัด

มีคำขอเข้ามา IIS เริ่มให้บริการบางสิ่ง (อาจเป็นข้อผิดพลาด) ทำให้เกิดพฤติกรรมนี้เธรดของผู้ปฏิบัติงานเข้าสู่วงวนไม่สิ้นสุดและตอก CPU ไปที่ 100% แล้วมันก็ยังคงอยู่แบบนี้จนกว่าแอพพูลจะถูกรีไซเคิล

แม้ว่าจะไม่มีการร้องขอใหม่เข้ามาซีพียูยังคงใช้งานอยู่เพราะเธรดที่ติดอยู่จะไม่หยุดทำงานจริง

บางครั้งคำขอใหม่จะเรียกพฤติกรรมนี้อีกครั้งจากนั้นคุณได้รับCPU ที่ติดอยู่สองตัว (หรือสามหรือสี่ ... )

แน่นอนว่าการรีไซเคิลแอพพลิเคชั่นจะยกเลิกเธรดผู้ทำงานทั้งหมดดังนั้นปัญหาจะได้รับการแก้ไข ... จนกว่าจะเกิดขึ้นอีกครั้ง


0

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


วิธีการแนบ Profiler CPU ในการประมวลผล w3wp ทางโปรแกรมเมื่อCPU สูงหรือ RAM มากกว่า 90% ?
Kiquenet

0

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

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