Пропускная способность базы данных намного выше пропускной способности сервера. Обычный?

Некоторое время назад мы переносили наш достаточно популярный форум на новый выделенный сервер (с тем же хостингом) и заметили кое-что странное. Сначала мы использовали новый сервер только для размещения базы данных, так как это было самой большой проблемой. Затем позже мы перенесли файлы форума и изменили dns для домена.

Когда мы оглядываемся назад на используемую пропускную способность, мы видим это для байтов, отправленных сервером:

database use: 100k/sec  
whole forum use: 25k/sec  

Примечание: байты, полученные сервером, все время оставались очень низкими.

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


person Tom Viner    schedule 27.03.2009    source источник


Ответы (4)


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

Я бы сказал, что это плохой дизайн (может быть, потому, что на уровне приложения больше логики, чем в базе данных), когда они выбирают гораздо больше данных, чем они на самом деле представляют клиенту.

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

Если вы погуглите об этой проблеме, я думаю, вы найдете много людей с такой же проблемой.

пример: http://www.vbulletin.org/forum/archive/index.php/t-111191.html

Если ваш хостинг неправильно измеряет пропускную способность, вы можете в конечном итоге платить за огромное количество внутреннего трафика, а это не круто :)

person jishi    schedule 27.03.2009

Звучит как сценарий, в котором MySQL рассматривается как плоский файл, а логика данных находится в PHP, а не в SQL.

person vartec    schedule 27.03.2009
comment
Теперь я понимаю, что это правильно. По умолчанию vBulletin предполагает, что он может хранить настройки только в базе данных (а не в файловой системе), поэтому каждый запрос загружает каждую настройку из базы данных!... Я собираюсь установить кэширование! - person Tom Viner; 15.04.2009

Это очень неэффективно. Правильно написанный SQL должен возвращать именно те данные, которые вам нужны, и протоколы для таких передач были разработаны очень эффективными. Затем ваше приложение добавляет HTML, javascript, растровые изображения и т. д. и поэтому должно генерировать как минимум вдвое больше трафика по сравнению с базой данных.

person Community    schedule 27.03.2009

Может быть, база данных возвращает UTF-16, а вы показываете страницы UTF-8?

person tuinstoel    schedule 27.03.2009