ประสิทธิภาพ ASP.NET ลดลงระหว่างเซิร์ฟเวอร์ 32 บิต / 64 บิต


9

ขณะนี้เรากำลังอยู่ในขั้นตอนการอัพเกรดเซิร์ฟเวอร์ผลิต 32 บิตของเราไปเป็นเซิร์ฟเวอร์ 64 บิตที่มีประสิทธิภาพมากขึ้นในขณะที่อัพเกรดเป็น ASP.NET 4 อย่างไรก็ตามเมื่อทำการทดสอบบางครั้งเราดูเหมือนว่าประสิทธิภาพจะลดลง!

ฉันได้สร้างการทดสอบโหลดอย่างง่ายโดยมีผู้ใช้ 20 คนทำการทดสอบการใช้งานง่าย ๆ และเปรียบเทียบผลลัพธ์:

คำตอบหน้า

อย่างที่คุณเห็นการกำหนดค่าที่มีประสิทธิภาพสูงสุดคือเซิร์ฟเวอร์ 32 บิตที่มีอยู่ด้วย ASP.NET 2.0

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

ด้วยเหตุผลบางอย่างทุกครั้งที่ฉันรันการทดสอบกับ IIS ใน 64 บิตมีจุดเริ่มต้นที่ใหญ่มากจากนั้นจะหายไป แต่ก็ยังมีเวลาตอบสนองที่สูงกว่า 32 บิต สไปค์หายไปเมื่อฉันเรียกใช้ IIS ในโหมด 32 บิต

เข็ม 64 บิต

โปรดทราบว่าแอพพลิเคชั่น / แอพไม่ได้ถูกรีสตาร์ทระหว่างการทดสอบ แต่สไปค์จะอยู่ที่นั่นอย่างสม่ำเสมอและการตอบสนองจะสูงกว่าการกำหนดค่าอื่น ๆ

ดังนั้น - คำถามของฉันคือ: ไม่มีใครมีความคิดใด ๆ ว่าทำไมถึงเป็นเช่นนี้? มีการตั้งค่าคอนฟิกใด ๆ ที่ฉันต้องการตั้งค่าหรือไม่? ไม่มีใครมีตัวชี้บางอย่างเกี่ยวกับวิธีที่ฉันสามารถ จำกัด สิ่งที่ทำให้เกิดความแตกต่าง?

เซิร์ฟเวอร์ที่ใช้งานอยู่ปัจจุบัน: Win Server 2003 - 32 บิต - IIS6

เซิร์ฟเวอร์ใหม่: Win Server 2003 R2 - 64 บิต - IIS6

คำตอบ:


4

ตามเอกสารประกอบ MS แนะนำให้เรียกใช้พูลแอพ 32 บิตบนเซิร์ฟเวอร์ 64 บิตเนื่องจากแอปพลิเคชันบนเว็บไม่ควรใช้หน่วยความจำเพิ่มเติม (ภายใน)

แอป 32 บิตนั้นมีประสิทธิภาพมากกว่าเสมอตัวชี้ขนาดเล็กหมายถึงหน่วยความจำน้อยกว่าที่จำเป็นสำหรับชุดคำสั่งเฉพาะซึ่งหมายถึงอัตราส่วนการเข้าถึงแคชที่ดีกว่า

กระบวนการ 64 บิตมีเหตุผล จำกัด - เมื่อกระบวนการต้องการหน่วยความจำมากขึ้น ถ้าคุณทำให้หน้าเว็บของคุณทำอย่างนั้น (ส่วนหน้า) ไม่มีเหตุผลที่มันจะต้องใช้หน่วยความจำมากขนาดนั้น)

ด้านบนมันทำให้รู้สึกถึงการอัพเกรดเป็นเวอร์ชั่นที่มีประสิทธิภาพมากขึ้น IIS6 ดูดประสิทธิภาพตามเข็มนาฬิกาขนาดใหญ่ - IIS 7.5 ดีกว่ามากโดยเฉพาะถ้าคุณเรียกใช้รหัส ASP.NET / ที่มีการจัดการ


น่าสนใจขอบคุณ ฉันไม่คิดว่าคุณมีลิงก์ไปยังเอกสาร MS พร้อมคำแนะนำเพียงเพื่อให้ฉันสามารถอ่านเพิ่มเติมได้? น่าเสียดายที่ฉันไม่สามารถใช้ II7 + ได้เพราะฉันผูกพันกับ Win2k3 :(
DavidMasters84

IIS.net - หลักเกณฑ์การโฮสต์;) สำหรับ iis 7,)
TomTom

"เนื่องจากแอปพลิเคชันบนเว็บไม่ควรใช้หน่วยความจำเพิ่มเติม" ดูเหมือนสิ่งที่ Bill Gates กล่าวในยุค 80 :) คุณมีลิงก์สำหรับแนวทางหรือไม่
Fredrik Johansson

2

เราลองสิ่งนี้บนเซิร์ฟเวอร์ Windows 2K3 ของเราและได้สิ่งเดียวกันฉันไม่ได้อยู่ที่นี่ในเวลานั้น แต่มันเป็นเรื่องเกี่ยวกับวิธีที่ MS ใช้ 64Bit .Net ใน 2K3 (ไม่แน่ใจว่ามีอะไร แต่คนที่บอกฉันว่าเป็น MVP ดังนั้น ฉันจะเอาคำพูดของเขาไป)

และเพื่อแจ้งให้คุณทราบว่าหากคุณย้ายไปที่ Win2K8 คุณอาจเห็นสิ่งเดียวกันกับที่ฉันทำกับเซิร์ฟเวอร์ของเราที่นี่และได้รับปัญหาประสิทธิภาพการทำงานเดียวกัน จากสิ่งที่ฉันได้รับการบอกกล่าวและการอ่านเล็กน้อยเพื่อใช้ประโยชน์จาก 64Bit. Net แนะนำให้ใช้ pipelines แบบรวม ( http://msdn.microsoft.com/en-us/magazine/cc135973.aspx )

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

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