TiA

Рейтинг
116
Регистрация
12.06.2009
netwind:
А что еще можно сделать на новостном движке ?

У меня на DLE есть довольно беленькие пушистые сайты.

netwind:
в основном тупят запросы на поиск, вывод похожих новостей, поиск по тегам.

Вывод похожих новостей по-умолчанию кешируется.

Запросы на поиск в основном тоже довольно простые. Несколько условий + LIKE или MATCH. На базе в 200К записей такого рода запросы исполняются примерно на порядок дольше, чем с выборкой по id. Это значения примерно 0.001 -0.01 сек. Недавно этот вопрос детально исследовал.

Я уже молчу о том, что в нормальных условиях запросы на поиск поступают на несколько порядков реже чем запросы страниц.

netwind:
И, по-моему, самая большая проблема, которую не решить настройками, по крайней мере в dle 8.5 внутри было очень много запросов с calc_found_rows() - это просто вырвиглазный ужас. Так никто не пишет.

Самая большая? Точно? Директива SQL_CALC_FOUND_ROWS в DLE 8.5 не используется. Есть вот проект на 8.5. Не нашел. Вместо этого используется менее эффективная и более привычная COUNT(*). При включенном кешировании используется довольно редко.

Adminstation:
Доступное объяснение на http://openhosting.ru/vps/xen-vs-openvz.jsp

Зачем вы ссылку кинули? Я тоже поиском умею пользоваться.

Raistlin:
Мозгами пошевелите. Если оверселл на ноде, там никакая настройка не поможет.

А если не если? Версию с оверселом нужно грамотно проверить, а не списывать со старта все на хостера и советовать XEN. Если оверсел действительно имеет место, то нужно просто сменить хостера, если нет, то настраивать сервер и скрипты.

Raistlin:
Откуда ж вы такие умные беретесь? Пример такой настройки в студию.

Вот так сразу, да? Apache настраивается под конкретные скрипты, их потребление памяти, а также требования к модулям.

Распишу что происходит у Вентилятор. Он запускает проверку на host-tracker.com. Этот сервис генерирует довольно много обращений и сразу. Обработкой запросов занимается apache2 с mpm prefork. В настройках по-умолчанию директива MaxClients неоправданно высока. Если я не ошибаюсь, она имеет значение по-умолчанию 150. При работе WP с настройками по-умолчанию процессы Apache2 кушают около 60 Мб. В оперативке таких процессов поместится 4. Учитывая что на VPS-ку может выделяться до 1024 Мб памяти это количество может быть увеличено до 16.

Поскольку в настройках указано значение в 150, буферизации запросов не происходит и Apache пытается создать столько форков, сколько нужно для обработки всех запросов. Таких процессов может быть до 150. На самом деле когда число таких процессов превышает 4-16, возникает out of memory. Память банально кончилась. Это, собственно, и происходит.

bafoed, в настройках Apache укажите, чтобы он слушал только 127.0.0.1. Вот и вся уличная магия.

Вентилятор:
посоветуйте плиз, что ещё можно подкрутить?

Для начала:

1) установить и настроить nginx.

2) настроить apache2

Вентилятор:
саппорт пишет что нужно типа нужно "снизить потребление ресурсов, оптимизировать скрипты, серверу не хватает памяти", и т.п. чушь. как vps может не тянуть обычный сайт на вёрдпрессе, даже без плагинов))

Это не чушь, а вполне адекватный ответ. VPS нужно настроить.

Вентилятор:
т.е., я там ничего не смогу самостоятельно настроить? проблема только в хостере?

Меньше слушайте всяких советчиков. У вас же есть root доступ по SSH.

Сама технология OpenVZ накладывает ограничения в основном на ядро. Его нельзя сменить, нельзя подгрузить какие-то модули. Также есть нюансы с работой с дисковым кешем, а также нюансы, которые связаны с использованием и выделением оперативной и своп памяти.

Для обычного веб-сервера эти ограничения несущественны. Серверное ПО будет работать ровно так как вы его настроили. Настройки по-умолчанию для конфигурацией с 256 Мб гарантированной памяти не катят. Там нужен практически ручной тюнинг и оптимизация. Примерные направления я вам обрисовал в начале сообщения.

Ну и пару слов на счет XEN-а. Пользовался я этой штукой. Дорого. Систему легче уронить в своп при неправильной настройке. Там если выделили 256 Мб ОЗУ - значит выделили 256 Мб. С настройками по-умолчанию "привет, перезагрузка" наступает довольно быстро.

Adminstation:
На VPS могут блокировать его настройки на главном сервере. Напишите в их суппорт.

Какие настройки? Настройки Apache хостер блокирует? Или настройки mod_php?

netwind:
Суть говносайтостроительства в работе на массу. Чем больше говноновостей закуплено на говнобирже в виде готовых говнобаз или спарсено, тем больше говнотрафика притянет говносайт. Так что новостей обычно очень много. И тут sql-запросы закономерно становятся говнозапросами.

Давайте будем без "говно" и варезников. Сейчас рассматривается сам движок и ситуация с чрезмерной загрузкой сервера со стороны MySQL сервера.

В данной ситуации в первую очередь стоит анализировать какие запросы наибольше грузят MySQL сервер. Если таковые найдутся, то нужно копаться уже в коде, дописывать механизм кеширования.

Варианты с полным кешированием страниц на уровне nginx... Это даже не знаю как назвать. Самый крайний вариант. Сути проблемы это не решит.

Если вы уж заговорили о количестве новостей, то приведу немножко фактов. На генерацию страницы с полной новостью для гостей в DLE уходит два запроса. Один SELECT и один INSERT/UPDATE. Выборка SELECT происходит по id (PRIMARY INDEX). С какой скоростью она происходит даже при отключенном key_cache, думаю, вам объяснять не надо? На базе с 200К записей на это уходит около 0.0001 - 0.001 сек на слабеньком сервере. Это без учета query_cache. С кешем запросов вообще все мгновенно происходит. При довольно большом кеше запросов размер базы вообще особого значения не имеет.

tarin, и так. Вам в первую очередь нужно выявить какие запросы наибольше грузят сервер. Для этого в настройках MySQL включите логирование медленных запросов (параметр slow query log) и укажите лимит логирования в 1-2 секунды. Скорей-всего некие дополнения генерируют очень сложные запросы. Если все в этом плане гладко, то я бы занялся анализом размера кешей MySQL.

Недавно с подобной проблемой столкнулся. Проблема заключалась в стороннем модуле для генерации последних сообщений с форума. Пришлось ручками дописать систему кеширования.

Если говорить о нагрузках, то DLE в дефолтной поставке на вашей конфигурации с 1К новостей в сутки легко держит 100-200К пользователей.

Andreyka:
dle - гуано, в плане работы с mysql

В плане чистоты кода DLE действительно г..но, но движок этот работает очень быстро. На страницу уходит в среднем 2-4 простых запросов. С DLE плотно работал, знаю о чем говорю.

sanek678:
Кто подскажет почему Петя готов писать от 2 до 5 месяцев за 2k$, а Дима за 2 месяца но за 3k$.

Потому что Петя и Дима плохо представляют себе объем работы.

sanek678, странно. По-моему пятница была вчера или это продолжение? ;)

Вы, надеюсь, представляете себе объем работ? Тут варианты с одним человеком не катят.

Варианты вроде

sanek678:
но платить я буду только за реально работающий проект, после тестирования.

тоже не катят.

vladmitrich:
Хотелось бы услышать ваше мнение о том, как бороться с дублями страниц в CMS Joomla!

Решение проблем с дублями страниц. Там для com_content. Можно аналогично и для других компонент сделать. Вводится дополнительная проверка URL и редирект на нужную страницу.

Klopopryg:
Что бы на него поставить? Стоит MODx, но если в адресной строке сразу после домена www.gcprz.ru написать "/" а за ним набор символов любой, то выдаст главную страницу.

Это лечиться, но думаю, может что-нибудь другое, поставить?

Давайте подумаем. У вас есть рабочий сайт. Менять CMS-ку только из-за такой фигни не имеет смысла. Ведь наличие дублей само по себе ничего плохого не означает. Проблемы начинаются, когда эти дубли проиндексированы.

Проиндексированные дубли, к слову, можно легко отследить в том же GWT. Если их много, то можно чуть подкрутить механизм роутинга, добавить проверку и редирект по необходимости.

Всего: 800