ฉันเพิ่งย้ายเซิร์ฟเวอร์ 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 สูงโดยไม่มีทราฟฟิก
ความช่วยเหลือใด ๆ ที่ชื่นชมมาก