Re[7]: Вопрос по взаимодействию Servlet и БД. Большие нагруз
От: Cyberax Марс  
Дата: 26.08.07 02:59
Оценка:
Здравствуйте, Дельгядо Филипп, Вы писали:

C>>Сравнивал — разница в десятки раз. Lighthttpd забивает стомегабитный канал статическими файлами даже не напрягаясь (уровень загрузки процессора близок к 5%-10% на каком-то P4), тут еще сказывается его асинхронная неблокирующаяся натура. Tomcat/Jetty на таких нагрузках съедает весь процессор.

ДФ>Я правильно понял, что единственная причина использования файлов вместо БД — возможность использования lighthttpd для отдачи статического контента?
ДФ>Т.е. если сделать, например, модуль к тому же lhttpd, который статику забирал бы из БД (а это, насколько я помню, вполне реально) — то смысла в файловой системе уже и не остается.
Останется.

Во-первых, сама по себе база намного медленнее простого обращения к файлу.
Во-вторых, lighthttpd/apache жутко сильно оптимизированы для передачи файлов, например, там есть поддержка sendfile (http://tautology.org/software/man/sendfile) — файлы будут уходить в сеть с почти что нулевым оверхедом.
В-третьих, модуль достаточно сложно писать будет — lighty использует асинхронную архитектуру.

ДФ>Просто, если подумать, мощная журналируемая, высокопроизводительная, распределенная файловая система по своей структуре мало отличается от аналогичной БД. Только БД обычно легче обслуживать и можно гибче настраивать.

Файловая система не обязана быть распределенной и даже журналируемой. Она не будет являться основным хранилищем, поэтому целостность данных нам не важна.

ДФ>И, есть ли все-таки сравнения именно файловой системы с БД, а не Tomcat с httpd? Просто очень интересно.

Попробовал найти в Инете — не вижу что-то. Можно самому сделать

C>>Сотни транзакций в секунду, кстати, на определенных видах приложений получить можно легче легкого даже с небольшим числом клиентов.

ДФ>Гм. Я обычно считал, что если активный пользователь порождает больше транзакции в секунду — то что-то в системе не так (да и столько получается обычно при поллинге нотификаций).
ДФ>1000 одновременных активных пользователей — это уже довольно много.
Не так уж и много, если у системы есть четко выделенные пиковые часы.

ДФ>>>Но вот про кэш подумать стоит (про memcached, скорее всего).

C>>Memcached лучше всего подходит для сколь-либо динамических данных (типа комментариев в блогах). Для статических данных он только вредить будет.
ДФ>Угу. Впрочем, равномерной нагрузки почти никогда не бывает, так что причины использовать большой куш в оперативной памяти есть всегда.
Дело в том, что из memcached данные нужно передать на нужный хост — а это еще дополнительная загрузка сети. Проще иметь "персистентные кэши".
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.