29.01.2008, 11:13
|
#19
|
Участник
Регистрация: 28.11.2005
Адрес: Москва
|
Цитата:
Сообщение от vesna dba
А вот скажите - возможно ли обойтись более мощным сервером с большим объемом ОЗУ и не покупать второй АОС.
Возможно, если использовать 4-ку, но вам, похоже, это не грозит 
Цитата:
Сообщение от vesna dba
Почему завязка на количество пользователей?
Была такая тема, что, мол, AOS в 3-ке не может эффективно использовать больше двух процессоров. Связано это, по моим предположениям, с тем, что в ядре 3-ки со сборки 3.0.1951.8 и по 3.0.1951.7609 для работы с динамически выделяемой памятью используется одна и та же версия библиотеки SmartHeap 6.01 для многопоточных программ, в которой "заточка" сделана лишь под одноядерные и HT-процессоры. Соотв., на более чем двух процессорах при работе с динамической памятью отдельные потоки 3-го AOS'а, соответствующие отдельным пользовательским сессиям, начинают блокировать друг друга, что сказывается на масштабируемости. Видимо, исходя из усредненной мощности серверных процессоров и нагрузки на AOS и получается рекомендуемое количество одновременно работающих на одном AOS'е пользователей. Выходов тут мнэ... три  - покупать под AOS сервер с более шустрыми процессорами, памятью и дисками (а также "наворачивать" сервер БД);
- запускать большее количество AOS'ов, в т.ч. на одном физическом сервере, если на нем больше двух процессоров; только не надо слушать советы всяких индусов и пытаться выставлять процессам AOS'ов affinity (привязку к отдельным CPU) - виндовый time slicer и так прекрасно раскидает их потоки по свободным процессорам;
- переходить на 4-ку

последнее связано с тем, что в 4-ке уже используется SmartHeap/SMP 8.0 (т.е. более новая версия, к тому же заточенная под многопроцессорные системы), что вместе с рядом архитектурных изменений делает AOS 4-ки гораздо более масштабируемым. Сравните стоимость 1-го и 2-го вариантов, возможно, все же купить лицензию на еще один AOS будет дешевле.
PS. К слову, когда различные потоки AOS блокируют друг друга, по загрузке процессоров вы этого можете и не увидеть: поскольку в AOS используются виндовые объекты синхронизации, заблокированные потоки переводятся ядром винды в состояние ожидания, и кванты процессорного времени им не выделяются. Если при этом блокирующие потоки сами будут чего-то ожидать, а не "грузить процессор", то получится, что с одной стороны, процессоры не загружены, а с другой - наблюдаются тормоза...
Последний раз редактировалось gl00mie; 29.01.2008 в 14:48.
Причина: «SmartHeap/MP» -> «SmartHeap/SMP»
|
|
За это сообщение автора поблагодарили: belugin (3). |