Здравствуйте, Дельгядо Филипп, Вы писали:
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 данные нужно передать на нужный хост — а это еще дополнительная загрузка сети. Проще иметь "персистентные кэши".