Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Выбор CMS, позиционирование TYPO3, бизнес веб-разработки > Вопросы выбора CMS

Ответ
 
Опции темы Опции просмотра
Старый 31.01.2012, 14:01   #1
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

У нас все пользователи это fe_users.

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

По моим субъективным оценкам если бы было 1000 онлайн и для всех нужно было на каждой странице выводить кастомизированный контент, то производительности/памяти одного выделенного сервера (скажем за 5000$) уже может не хватать. Надо делать распределенную систему. Это конечно можно, но дороже в разы по деньгам и сложнее потом работать со всем этим. Если бы речь шла о 10000+ онлайн, то ИМХО TYPO3 выдержит только на сайтах где в основном статика.

Ну и от количества контента многое зависит. Одно дело если вам нужно делать выборки по таблице в 100 000 записей, другое когда записей 10 млн. и более. В этом разрезе количество пользователей всего и онлайн само по себе ничего не решает. Вопрос скорее в том сколько операций, выборок нужно делать для каждого онлайн-пользователя на страницу и на сколько эти операции тяжелы и поддаются кэшированию.
dmartynenko вне форума   Ответить с цитированием
Старый 31.01.2012, 19:30   #2
Lucifer
Senior Member
 
Аватар для Lucifer
 
Регистрация: 01.07.2008
Сообщений: 392
По умолчанию

Цитата:
Сообщение от dmartynenko Посмотреть сообщение
По моим субъективным оценкам если бы было 1000 онлайн и для всех нужно было на каждой странице выводить кастомизированный контент, то производительности/памяти одного выделенного сервера (скажем за 5000$) уже может не хватать. Надо делать распределенную систему. Это конечно можно, но дороже в разы по деньгам и сложнее потом работать со всем этим. Если бы речь шла о 10000+ онлайн, то ИМХО TYPO3 выдержит только на сайтах где в основном статика.
Ну и от количества контента многое зависит. Одно дело если вам нужно делать выборки по таблице в 100 000 записей, другое когда записей 10 млн. и более.
По моему, когда речь идет о подобных нагрузках, то в любой CMS все перепиливается, и кастомизируется. ))) Хотя тут, конечно, вопрос в том, что считать "онлайном" пользователя.
Lucifer вне форума   Ответить с цитированием
Старый 31.01.2012, 19:49   #3
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Цитата:
Сообщение от Lucifer Посмотреть сообщение
в любой CMS все перепиливается
Трудоемкость этого в TYPO3 может быть выше, чем написание только нужных в конкретном проекте вещей "с нуля". TYPO3 хорошо расширяется и дополняется, но "перепиливается" вряд ли.
dmartynenko вне форума   Ответить с цитированием
Старый 31.01.2012, 21:40   #4
Lucifer
Senior Member
 
Аватар для Lucifer
 
Регистрация: 01.07.2008
Сообщений: 392
По умолчанию

ну почему же?
page = PAGE
page.userFunc = tx_вашплагин
и все... пили, что хочется. и от самого тайпо может остаться какой то минимум.
Lucifer вне форума   Ответить с цитированием
Старый 01.02.2012, 11:54   #5
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Это как раз расширение и дополнение стандартных возможностей. А тут скорее проблема в том что даже страница с кодом
Код:
page = PAGE
page.10 = TEXT
будет генерится (в том числе из кэша) минимум 150-200ms (выделенный сервер), и это время уходит просто на загрузку кода ядра и основных экстов. Если грубо прикинуть, то на 16 ядрах при самых лучших условиях эта страница загрузит сервер на 100% уже при 16 * 5 = 80 одновременных обращениях от пользователей. А если одновременно обращатся будет 300 или 1000 ?
dmartynenko вне форума   Ответить с цитированием
Старый 01.02.2012, 15:30   #6
Илья
Senior Member
 
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
По умолчанию

Цитата:
Сообщение от dmartynenko Посмотреть сообщение
будет генерится (в том числе из кэша) минимум 150-200ms (выделенный сервер), и это время уходит просто на загрузку кода ядра и основных экстов. Если грубо прикинуть, то на 16 ядрах при самых лучших условиях эта страница загрузит сервер на 100% уже при 16 * 5 = 80 одновременных обращениях от пользователей. А если одновременно обращатся будет 300 или 1000 ?
Думаю что в ваших расчетах ошибка...
Почему считаете как 16*5?
Реально 16 ядерный сервер потянет на несколько порядков больше пользователей
Илья вне форума   Ответить с цитированием
Старый 01.02.2012, 15:41   #7
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

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

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

PS: Что-то мы далеко вышли за рамки исходного вопроса.
dmartynenko вне форума   Ответить с цитированием
Старый 05.02.2012, 11:17   #8
Lucifer
Senior Member
 
Аватар для Lucifer
 
Регистрация: 01.07.2008
Сообщений: 392
По умолчанию

Цитата:
Сообщение от dmartynenko Посмотреть сообщение
Это как раз расширение и дополнение стандартных возможностей. А тут скорее проблема в том что даже страница с кодом
Код:
page = PAGE
page.10 = TEXT
будет генерится (в том числе из кэша) минимум 150-200ms (выделенный сервер), и это время уходит просто на загрузку кода ядра и основных экстов. Если грубо прикинуть, то на 16 ядрах при самых лучших условиях эта страница загрузит сервер на 100% уже при 16 * 5 = 80 одновременных обращениях от пользователей. А если одновременно обращатся будет 300 или 1000 ?
А напильничком не, ваще никак? 150-200 - это пожалуй typo3 на апаче с дефолтным конфигом. nginx+phpfpm+apc - результаты намного более интересные.
А расчеты типа "одновременно 300-1000" - уж слишком заоблачные. Если считать "одновременно" за "в секудну", даже если это пиковая нагрузка, то подобные проекты не живут на одном сервере и на CMS-CMF. Да и по пальцам посчитать их можно.
Lucifer вне форума   Ответить с цитированием
Старый 05.02.2012, 22:56   #9
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

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

Я, например, APC не пробовал использовать. Только memcached. Хотя пару лет назад видел пост про сравнение скорости обращения (чтение-запись) APC vs memcached vs MySQL MEMORY TABLE. Так вот последние два были близки по скорости (но в MySQL то нормальный поиск есть), а APC до 10 раз был быстрее из за прямого доступа, минуя TCP.
dmartynenko вне форума   Ответить с цитированием
Старый 22.03.2012, 13:57   #10
jettero
Senior Member
 
Регистрация: 24.06.2006
Сообщений: 143
По умолчанию

Цитата:
Сообщение от dmartynenko Посмотреть сообщение
Это как раз расширение и дополнение стандартных возможностей. А тут скорее проблема в том что даже страница с кодом
Код:
page = PAGE
page.10 = TEXT
будет генерится (в том числе из кэша) минимум 150-200ms (выделенный сервер), и это время уходит просто на загрузку кода ядра и основных экстов. Если грубо прикинуть, то на 16 ядрах при самых лучших условиях эта страница загрузит сервер на 100% уже при 16 * 5 = 80 одновременных обращениях от пользователей. А если одновременно обращатся будет 300 или 1000 ?
Наверно сервер слабенький, у меня на одном сайте-соцсети, страница с 5-6 USER_INT плагинами на ней, генерится за 70-100 мс (если и страница и плагины из кэша, в INT плагинах сделан внутренний кэш).
При этом, на сайте довольно сложные и большие шаблоны - вся генерация контента сделана исключительно на TS шаблонах, с добавлением самописных контент объектов, для работы с формами, сложными структурами в БД итп, общий объем TS кода где-то 10-20к строк.
Так что не все так страшно. Правда сервер не слабый - 2 проца, 8 ядер и дофига RAM, но memcached сейчас отключен из-за разных багов при работе с ним через caching framework, так что пока кэш целиком в mysql лежит.

Последний раз редактировалось jettero; 22.03.2012 в 14:12
jettero вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каталог с большим количеством товара hotsnake Вопросы выбора CMS 1 09.01.2009 16:27


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория