2011-01-17 8 views
1

В последнее время я очень беспокоюсь о проблемах памяти в ASP.NET.ASP.NET и личные байты. Что это на самом деле означает?

Я читал довольно много статей, сделал один поток и использовал профилировщик для оптимизации моего приложения. Я также просто прочитал статью здесь о разнице в private bytes, virtual bytes and working set.

Итак, я понимаю, что частные байты - это плохой способ определения фактического использования памяти. Тем не менее, я собираюсь попробовать немного, так как хочу понять глубину использования памяти приложения.

В настоящее время он постоянно использует ~ 55-60 мб частных байтов. Означает ли это, что если я хочу запустить 2.000 пользователей одновременно на моем сайте, мне нужно: 60mb * 2000 = 120gb ram?

Я серьезно надеюсь, что кто-то может прийти и сказать мне, что я ПОЛНОСТЬЮ ошибаюсь, и я не в своем уме! :)

Я также проверил довольно простой сайт с очень ограниченной функциональностью, которая использовала байты размером ~ 40-45 мбайт, что также показалось довольно много.

ответ

1

Нет; использование памяти не масштабируется линейно с подсчетом пользователя.

Большая часть памяти (или должна быть) доступна для всех пользователей (особенно для байт-кода); объем памяти, используемый каждым дополнительным пользователем, должен быть довольно небольшим.

Кроме того, даже если у вас 2000 пользователей, вы не будете получать 2000 запросов одновременно.
Единственная постоянная служебная нагрузка для каждого пользователя - это состояние сеанса для каждого активных пользователей.

+0

Ahhh, боже! Это фантастика - вы не представляете, как я рад это слышать. Большое спасибо! :-) Я соглашусь ответить, когда смогу .. Спасибо! –

0

ASP.net имеет определенное количество накладных расходов, как и любое приложение на компьютере. Эта базовая сумма будет учитывать большую часть памяти, которую вы видите.

Что касается количества бара, необходимого для каждого сеанса/пользователя и т. Д., Что очень сильно связано с дизайном вашего приложения.

Смежные вопросы