Планирование пропускной способности сетевой подсистемы FreeBSD

Придет день, когда к вам придет ваш шеф и спросит: «Какой нужен сервер, чтобы иметь возможность обслужить одновременно сто тысяч клиентов?» Я не смогу помочь вам в оценке объемов памяти, которая потребуется вашему приложению (ладно, ладно – я смогу это сделать, но это тема уже другой книги), но рассчитать объем памяти, необходимый для сетевой подсистемы, вам вполне по силам. Каждое ТСР-со- единение требует наличия приемного и передающего буфера, тогда как для входящих UDP-соединений требуется только приемный буфер. В ходе сеанса FreeBSD может изменять размеры этих буферов, но изначально они имеют размеры, заданные значениями по умолчанию. Узнать значения по умолчанию можно из параметров sysctl – net.in- et.tcp.sendspace, net.inet.tcp.recvspace и net.inet.udp.recvspace.

#     sysctl net.inet.tcp.sendspace

net.inet.tcp.sendspace: 32768

#     sysctl net.inet.tcp.recvspace

net.inet.tcp.recvspace: 65536

#     sysctl net.inet.udp.recvspace

net.inet.udp.recvspace: 41600

Предположим, что у вас имеется веб-сервер, который должен обрабатывать одновременно сто тысяч подключений. Протокол HTTP работает поверх протокола TCP, поэтому для каждого соединения потребуется выделить приемный и передающий буферы. Для каждого соединения потребуется 96 Кбайт памяти (32 768 байт + 65 538 байт = 98 304 байт, или 96 Кбайт). Для одновременного обслуживания ста тысяч пользователей потребуется 9 Гбайт памяти (100 ООО х 96 Кбайт = 9 Гбайт)! Кроме того, на этом компьютере должно работать какое-то приложение. Вам потребуется предусмотреть какое-то решение, связанное с распределением нагрузки или кэшированием данных, или готовьтесь писать чертовы объяснительные по поводу единственного компьютера.

Задайте следующий далее вопрос тому, кто попытается предположить, что вам придется одновременно обслуживать сто тысяч пользователей. Если только вы не работаете в Yahoo! или в одной из конкурирующих компаний, вам едва ли придется видеть такие нагрузки. Даже если у вашего веб-приложения и наберется 100 000 зарегистрированных пользователей, то они, скорее всего, никогда не будут работать

«Раз в жизни» и стандартная нагрузка

Когда вступил в действие регистрационный сайт правительства США «do not call» с черным списком телефонов, с которых поступают рекламные звонки, одновременно на этом сайте попытались зарегистрироваться миллионы пользователей. Первый день сайт работал ужасно медленно, но уже через неделю сервер прекрасно справлялся с нагрузкой. Это наглядный результат правильного планирования пропускной способности. Нужно отличать пиковые нагрузки, которые случаются один раз в жизни, от обычных повседневных нагрузок.

с ним одновременно. Сколько денег вы готовы потратить, чтобы гарантировать работу в этом крайне редком случае?

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий