- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
да , используется pconnect везде
Ааа. Понятно. Знакомые грабли.
Не знаю конечно, что за софт используется, может ему это действительно нужно, но, как показывает практика, использование pconnect приводит только к перерасходу памяти, не давая ничего взамен.
Рекомендую использовать простой connect и будет счастье.
да в том-то и дело, что раньше использовался connect
и после простановки везде pconnect уменьшилась нагрузка на 20-30% на серв
может и странно,но факт
p.s. стоит max_connections=1000 , хватает ,
если сделать меньше , то юзеров просто не пускает на сайт
может, у Вас до этого была вот именно такая пролблема, поэтому и
кажется , что connect лучше...
мнения в Рунете по этому поводу расходятся
p.s. стоит max_connections=1000 , хватает ,
Куда столько? Вот и нету памяти.
На сайт что, заходит одновременно 1000 человек и открывается 1000 коннектов к базе? Что это за сайт такой? ;)
Реально с одной страницы обычно открывается один коннект к базе, независимо от количества генерируемых ею запросов, скрипт отработал - коннект грохнулся автоматом, память освободилась. Если использовать pconnect то он не грохается, а остается висеть и только занимает память.
Для примера у ресурса с посещаемостью 10к хостов в сутки Max used connections=40 при трехсуточном аптайме.
my.cnf
Объем БД ~2.4GB, но вся база и индексы помещаются в ОЗУ (6гб) pconnect-ы не используются.
Вот LA сейчас глянул: 1.36, 1.85, 2.01. Серв-2 x XEON
Тут мне сделали справедливое замечание, что указание tmp_table_size без max_heap_table_size не очень осмысленно, ибо выбирается меньшее значение, так что исправляюсь:
tmp_table_size = 2000M
max_heap_table_size = 2000M
Хотя особого смысла во временных таблицы в два гига нет. У меня эта настройка осталась после каких то игрищ с мускулом и поскольку реальная цифра была 16М то соответственно не использовалась.
Куда столько? Вот и нету памяти.
На сайт что, заходит одновременно 1000 человек и открывается 1000 коннектов к базе? Что это за сайт такой? ;)
онлайн около 500 человек вечером, по 2-5 запросов на каждого...
pconnect открывает соединение и потом не закрывает в конце запроса, следующий юзер по точно такому же запросу уже не нагружает базу, а использует данные из первого, если такой запрос не последовал в течение 20 секунд, данные убиваются...
а connect каждый раз коннектится, закрывает и т.д.
Вообще с кешем в my.cnf надо помудрить, как у Вас... может, и connect нормально заработает,
на 2 Гб оперативки и Xeon какие параметры могут быть оптимальны?
у Вас на 6 гб и 2 ксеона..
попробуйте делать кеширование результатов поиска. хотя бы на уровне, когда пользователь при поисковом запросе получает несколько страниц с найденным. чтобы при перемещении по страницам, заново поиск не осуществлялся
онлайн около 500 человек вечером, по 2-5 запросов на каждого...
Но это вовсе не означает, что все 500 юзеров одновременно генерят запросы к базе. Вероятность того, что все они синхронно нажмут кнопку "Read" итп крайне мала. Все равно запросы даже от такого количества пользователей будут размазаны во времени и закладываться на такое количество коннектов нет никакого смысла.
pconnect открывает соединение и потом не закрывает в конце запроса, следующий юзер по точно такому же запросу уже не нагружает базу, а использует данные из первого, если такой запрос не последовал в течение 20 секунд, данные убиваются...
pconnect всего лишь навсего не закрывает соединение и более ничего. Он ничего не кеширует. И если следующий запрос будет повторять предыдущий, то данные отдадутся из query cache, если он включен, к pconnect-e это не имеет никакого отношения. Какой либо выигрыш от использования pconnect-а может получиться только при огромном (десятки тысяч в сек?) количестве запросов на соединение с базой. В Вашем случае столько точно нет. С другой стороны, если созданные соединения по какой либо причине не будут использоваться повторно, а будут создаваться все новые и новые, то память кончится очень быстро. Возможно именно в этом и дело. Посмотрите в статсах количество коннектов и их максимальное количество. Последите за этими цифрами. Выключите на несколько минут http сервер и посмотрите.
А если есть желание что-либо кешировать, то на query cache лучше много памяти не тратить, а использовать например ADODB и кешировать все на диск. Очень полезная штука.
http://adodb.sourceforge.net/#docs