Зниження продуктивності 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 - 32bit - IIS6

Новий сервер: Win Server 2003 R2 - 64bit - IIS6

Відповіді:


4

Відповідно до документації, MS рекомендує використовувати 32-бітні пули додатків на 64-бітному сервері, оскільки веб-додаток не повинен використовувати більше пам'яті (внутрішньо).

32-бітні додатки завжди ефективніші - менші покажчики означають менше пам'яті, необхідної для певного набору інструкцій, що означає кращі коефіцієнти показів кешу.

64-бітні процеси мають обмежений сенс - коли для процесу дійсно потрібно більше пам’яті. якщо ви продовжуєте робити веб-передню частину саме так (передній кінець), немає ніяких причин, коли вона потребує стільки пам’яті;)

Зверху, має сенс насправді перейти на більш ефективні версії. IIS6 висмоктав велику роботу на великій швидкості - IIS 7.5 набагато краще, ОСОБЛИВО, якщо ви запускаєте ASP.NET / керований код.


Цікаво, дякую. Я не думаю, що у вас є посилання на MS MS з рекомендацією, просто я можу зробити наступне читання? На жаль, я не можу використовувати II7 +, тому що мене прив'язує Win2k3 :(
DavidMasters84

IIS.net - інструкції щодо розміщення хостів;) Для iis 7,)
TomTom

"Оскільки веб-додаток не повинен використовувати більше пам'яті", це звучить як щось, про що Білл Гейтс сказав у 80-х роках :) Чи є у вас посилання на вказівки?
Фредрік Йоханссон

2

Ми спробували це на нашому сервері Windows 2K3 і отримали те ж саме, я в той час не був тут, але це щось пов'язане з тим, як MS реалізував 64Bit .Net в 2K3 (не впевнений, що, окрім людини, яка мені сказала, це MVP. Я візьму його слово.)

І просто для того, щоб ви могли знати, що якщо ви перейдете на Win2K8, ви можете побачити те саме, що і я з нашими серверами тут, і ви отримаєте ту саму проблему з продуктивністю. З того, що мені сказали і трохи читаю, щоб скористатися 64Bit. Не рекомендується використовувати інтегровані трубопроводи ( http://msdn.microsoft.com/en-us/magazine/cc135973.aspx )

Вибачте, це не відповідає на ваше запитання, але я подумав, що дам вам знати, що ви не єдиний, хто бачив це питання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.