Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Вопросы выбора CMS (http://forum.typo3.ru/forumdisplay.php?f=36)
-   -   Cайт с большим количеством FE юзеров (http://forum.typo3.ru/showthread.php?t=9907)

dmartynenko 01.02.2012 11:54

Это как раз расширение и дополнение стандартных возможностей. А тут скорее проблема в том что даже страница с кодом
Код:

page = PAGE
page.10 = TEXT

будет генерится (в том числе из кэша) минимум 150-200ms (выделенный сервер), и это время уходит просто на загрузку кода ядра и основных экстов. Если грубо прикинуть, то на 16 ядрах при самых лучших условиях эта страница загрузит сервер на 100% уже при 16 * 5 = 80 одновременных обращениях от пользователей. А если одновременно обращатся будет 300 или 1000 ?

Илья 01.02.2012 15:30

Цитата:

Сообщение от dmartynenko (Сообщение 33001)
будет генерится (в том числе из кэша) минимум 150-200ms (выделенный сервер), и это время уходит просто на загрузку кода ядра и основных экстов. Если грубо прикинуть, то на 16 ядрах при самых лучших условиях эта страница загрузит сервер на 100% уже при 16 * 5 = 80 одновременных обращениях от пользователей. А если одновременно обращатся будет 300 или 1000 ?

Думаю что в ваших расчетах ошибка...
Почему считаете как 16*5?
Реально 16 ядерный сервер потянет на несколько порядков больше пользователей

dmartynenko 01.02.2012 15:41

Расчеты очень грубые, так как не учитывается реальное обращение в БД, ФС, сети и влияние этих факторов. Но примерно так: если 1 страница генерится 200ms (1/5 секунды), то одно ядро за секунду сможет сгенерить только 5 страниц. Значит 16 ядер смогут выдать не более 16 * 5 = 80 страниц в секунду.

Я писал именно про число одновременных запросов. Это не то же самое что число онлайн пользователей. Может быть 1000 пользователей онлайн, но каждый открывает страницу и просматривает ее скажем не менее 30 секунд. В таком случае число одновременных запросов от 1000 пользователей будет в среднем намного меньше 1000, опять же грубо 1000 / 30 = 30 страниц в секунду.

PS: Что-то мы далеко вышли за рамки исходного вопроса.

Dmitry Dulepov 01.02.2012 20:05

Цитата:

Сообщение от Илья (Сообщение 32976)
Dmitry Dulepov
Спасибо за участие в теме, можно ссылку на этот сайт увидеть здесь или в личке?
2All
Кстати, эти десятки тысяч пользователей в вашей системе, да и в системе dmartynenko это FE пользователи для Typo3 или же они "сидят" чисто внутри кастомного экста?

http://www.calis.lv/, но там нет ни русской, ни английской версии. Все юзеры – FE.

Dmitry Dulepov 01.02.2012 20:17

У меня там самое тяжелое – форумы (http://www.calis.lv/forums/). Форумы написаны с нуля, потому что там нужны вещи, которых нет нигде. Плюс все запиливалось на производительность (сервер – один на все, людей – много, контингент на 70% – женский, пишут страшно много). Даже собственный mvc был запилен, с оптимизацией всего и кешированием записей в APC. Это еще на TYPO3 4.3 работало. Пробовал TYPO3 caching framework, но с ним все легло через 3 минуты после включения. Поднялось только когда отключил caching framework. Т.е. вообще без кэша работало быстрее, чем с caching framework. С другой стороны – понятно почему: caching framework, как обычно, идеологически правильная, но не приспособленная к реальной жизни вещь :) В результате сделал свою реализацию кэша, котторой и пользуюсь. Вот, сейчас имею в APC:

Free: 265.6 MBytes (51.9%) Hits: 38115103 (100.0%)
Used: 246.4 MBytes (48.1%) Misses: 809 (0.0%)

File Cache Information
Cached Files 666 ( 79.1 MBytes)
Hits 38115103
Misses 809
Request Rate (hits, misses) 804.63 cache requests/second
Hit Rate 804.61 cache requests/second
Miss Rate 0.02 cache requests/second
Insert Rate 0.01 cache requests/second
Cache full count 131012

User Cache Information
Cached Variables 112438 (161.5 MBytes)
Hits 11019223
Misses 3544300
Request Rate (hits, misses) 307.44 cache requests/second
Hit Rate 232.62 cache requests/second
Miss Rate 74.82 cache requests/second
Insert Rate 96.96 cache requests/second

Вот так и живем :)

Илья 05.02.2012 03:59

В общем пока что решил делать сайт на Typo3. О результатах сообщу позднее

Lucifer 05.02.2012 11:17

Цитата:

Сообщение от dmartynenko (Сообщение 33001)
Это как раз расширение и дополнение стандартных возможностей. А тут скорее проблема в том что даже страница с кодом
Код:

page = PAGE
page.10 = TEXT

будет генерится (в том числе из кэша) минимум 150-200ms (выделенный сервер), и это время уходит просто на загрузку кода ядра и основных экстов. Если грубо прикинуть, то на 16 ядрах при самых лучших условиях эта страница загрузит сервер на 100% уже при 16 * 5 = 80 одновременных обращениях от пользователей. А если одновременно обращатся будет 300 или 1000 ?

А напильничком не, ваще никак? :) 150-200 - это пожалуй typo3 на апаче с дефолтным конфигом. nginx+phpfpm+apc - результаты намного более интересные.
А расчеты типа "одновременно 300-1000" - уж слишком заоблачные. Если считать "одновременно" за "в секудну", даже если это пиковая нагрузка, то подобные проекты не живут на одном сервере и на CMS-CMF. Да и по пальцам посчитать их можно.

dmartynenko 05.02.2012 22:56

А причем здесь Апач ? Это время parsetime, которое считает сам TYPO3 - запускает счетчик при вызове index.php, и выводит в конец кода страницы в конце index.php. Накладные расходы до и после вызова index.php это дополнительное время. Да все это измерение сферического коня в вакууме. На каждом проекте свои уникальные задачи (проблемы) и свои уникальные их решения (см. пример про www.calis.lv).

Я, например, APC не пробовал использовать. Только memcached. Хотя пару лет назад видел пост про сравнение скорости обращения (чтение-запись) APC vs memcached vs MySQL MEMORY TABLE. Так вот последние два были близки по скорости (но в MySQL то нормальный поиск есть), а APC до 10 раз был быстрее из за прямого доступа, минуя TCP.

Lucifer 05.02.2012 23:14

апач очень даже при чем. если брать apache + modulephp, то для каждого запуска надо поднять весь пхп со всеми модулями. да и сам по себе апач работает медленнее, и ест больше памяти. если пхп работает в режиме php-fpm, то все уже поднято.
мемкеш сравнивать с апц не совсем корректно. так как мемкеш - это просто кейвелью хранилище. апц же, кроме хранения отдельных ключей (в этой роли я его не пробовал) еще и самостоятельно кеширует код (аля eAccelerator), и, судя по ab, дает неплохие результаты )

dmartynenko 06.02.2012 12:14

Уважаемый Lucifer! Вы не внимательны к моим словам.
Цитата:

Сообщение от Lucifer (Сообщение 33046)
то для каждого запуска надо поднять весь пхп со всеми модулями...

Но это никак не влияет на время parsetime, который считает сам TYPO3. Поднятие php и прочие вещи происходят до вызова index.php, или вы не согласны с этим?

Цитата:

Сообщение от Lucifer (Сообщение 33046)
мемкеш сравнивать с апц не совсем корректно

Необходимость кэша PHP кода для TYPO3 очевидна, без него parsetime вырастет в 5-10 раз. Но тут сравнивается именно задача того же рода - когда APC выступает в роли key-value хранилища (http://www.php.net/manual/ru/ref.apc.php). Причем основные функции практически идентичны таковым в memcached.


Часовой пояс GMT +4, время: 12:06.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot