- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вообщем хотел спросить, как быть, есть один не очень крупный сайт.
Проблема заключаеться в том, что в пики посещаемости, падает база данных.
Но странное ще то, что к примеру она падает от 20-25 юзеров одновременного прибывание на сайте..
Хотел бы узнать схематические ответы решение этой проблемы, скажу сразу я в mysql не эксперт но кое что могу (если это не слишком сложно..)
Хотел бы узнать как можно это все проверить что бы прийти к выводам, т.е схематически выполнить действие что бы обнаружить ту или инную ошибку и уже решать ее (к примеру заплатить оптимизаторам бд или еще что не знаю пока) но для начала сам хочу понять в чем же проблема..
Думал переезжать на платный сервер но мне сказали что это просто смешно 25 онлайн и падает бд.
Вообщем хочу услышать ваши советы, так как еще проблема в том что если трафик будет расти сайт не будет нормально работать.. т.е будет принимать юзеров если их не слишком много но от этого будет страдать и контекст реклама вообщем.. все взаимосвязанно..
Напишите хостеру какие файлы или какие запросы нагружают сервер... Другого совета дать лично я не могу.
nomarketing, лично я бы начал диагностику с общего числа SQL-запросов, которые выполняются, чтобы сформировать страницу. Бывает так: думаешь, что там 5-10 небольших запросов. А на самом деле оказывается 900-1000. Причём 90-95% из них просто лишния.
У вас есть возможность отследить, сколько SQL-запросов выполняется при формировании страниц?
---------- Добавлено 24.02.2014 в 20:31 ----------
Следующее, что приходит в голову — проверить железо. Винчестеры имеют обыкновение через 4-6 лет работать жутко медленно. Бывает и так: в коде ничего не меняешь, но на новой винчестере БД летает, а на старом — глохнет.
Далее я бы использовал утилиту innotop в период пиковых нагрузок. Утилита в реальном времени показывает долго выполняющиеся запросы.
Для этой же цели можно переконфигурировать MySQL. В my.cnf прописать логгирование медленных запросов. Порог поствить, например, 10 или 15 секунд — если запрос выполняется дольше порога, он будет записан в лог-файл. Если в лог файл ничего не попадает, то понижаем порог.
nomarketing, CMS какая?
Довольно часто есть встроенные средства "профайлинга" - как общее количество/время запросов, так и детализация по каждому запросу.
nomarketing, лично я бы начал диагностику с общего числа SQL-запросов, которые выполняются, чтобы сформировать страницу. Бывает так: думаешь, что там 5-10 небольших запросов. А на самом деле оказывается 900-1000. Причём 90-95% из них просто лишния.
У вас есть возможность отследить, сколько SQL-запросов выполняется при формировании страниц?
---------- Добавлено 24.02.2014 в 20:31 ----------
Следующее, что приходит в голову — проверить железо. Винчестеры имеют обыкновение через 4-6 лет работать жутко медленно. Бывает и так: в коде ничего не меняешь, но на новой винчестере БД летает, а на старом — глохнет.
Далее я бы использовал утилиту innotop в период пиковых нагрузок. Утилита в реальном времени показывает долго выполняющиеся запросы.
Для этой же цели можно переконфигурировать MySQL. В my.cnf прописать логгирование медленных запросов. Порог поствить, например, 10 или 15 секунд — если запрос выполняется дольше порога, он будет записан в лог-файл. Если в лог файл ничего не попадает, то понижаем порог.
Сайт - на обычном хостинге где хостяться еще сайты - но когда были проблемы раньше - чаще - хостер говорил что бд падает из за запросов.
Отследить ? - у меня есть сайт на локальной машине win - denwer.. - может как то можно локально проверить или самому как то сгенерировать что то типа нагрузки и выловить где ошибка и сколько держит ? - ну или не знаю.. но на данный момент ситуация такова..
---------- Добавлено 24.02.2014 в 19:41 ----------
nomarketing, CMS какая?
Довольно часто есть встроенные средства "профайлинга" - как общее количество/время запросов, так и детализация по каждому запросу.
X-Zero Community
это не обязательно ошибка или кол-во запросов.
можно одним запросом положить базу.
ваша задача состоит в том, чтобы найти как говорится bottle neck
Сайт - на обычном хостинге где хостяться еще сайты
Какие тогда советы, если там параллельно работают еще сто сайтов? За советами - к администратору хостинга.
Сайт - на обычном хостинге где хостяться еще сайты - но когда были проблемы раньше - чаще - хостер говорил что бд падает из за запросов.
Ага, т.е. падение могло быть не по вине вашего сайта, а по вине какого-то другого сайта, который положил СУБД хостера?
С вашей CMS я не знаком, поэтому не скажу, как именно подсчитать число запросов БД. Но если бы такая задача была поставлена...
1) Разворачиваем сайт на Win- Denwer
2) разворачиваем реальную базу с сайта
3) ищем в скриптах место, в котором РНР обращается к MySQL, и ставим там инкрементирующий счётчик. Например, пишем в файл строчку. По окончании загрузки страницы открываем файл и считаемч число строк. (Если есть время разобраться с CMS, то можно и более красивый счётчик сочинить)
4) повторяем процедуру для разных страниц. Записываем результаты измерений.
Ага, т.е. падение могло быть не по вине вашего сайта, а по вине какого-то другого сайта, который положил СУБД хостера?
С вашей CMS я не знаком, поэтому не скажу, как именно подсчитать число запросов БД. Но если бы такая задача была поставлена...
1) Разворачиваем сайт на Win- Denwer
2) разворачиваем реальную базу с сайта
3) ищем в скриптах место, в котором РНР обращается к MySQL, и ставим там инкрементирующий счётчик. Например, пишем в файл строчку. По окончании загрузки страницы открываем файл и считаемч число строк. (Если есть время разобраться с CMS, то можно и более красивый счётчик сочинить)
4) повторяем процедуру для разных страниц. Записываем результаты измерений.
А поподробней можно на счет счетчика ? остальное уже все есть реальная база - и денвер и сама цсм - готов приступить к понятию и поиска проблемы - еще я глянул в логах сервера (хостера)
В каком скрипте ошибка базы данных и ее строка
PHP Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in
HP Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
PHP Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
Что нужно сделать ? - найти код запроса - как выявить сколько времени требуеться и можно ли оптимизировать это ?
А поподробней можно на счет счетчика ? остальное уже все есть реальная база - и денвер и сама цсм - готов приступить к понятию и поиска проблемы - еще я глянул в логах сервера (хостера)
http://dev.mysql.com/doc/refman/5.1/en/query-log.html
---------- Добавлено 24.02.2014 в 20:34 ----------
Что нужно сделать ? - найти код запроса - как выявить сколько времени требуеться и можно ли оптимизировать это ?
nomarketing, вы всерьез думаете что с такими "знаниями" сможете что-то оптимизировать, если вы даже сообщить эффективно о ошибке не можете?
Нужно выяснить почему - не прошел запрос. А для этого сначала нужно увидеть сам запрос. Напишите администратору хостинга, пусть скажет что с сервером, и логи даст если есть.
Запрос к БД обычно отправляют через функцию mysql_query(). Можно поискать её текстовым поиском по всем файлам.
А с файлом можно работать, например, так:
$f = fopen( 'путь к лог файлу', 'a' ); //открываем файл на добавление
fputs( $f, '.' ); //пишем точку, как счётчик
$fclose( $f ); //закрываем файл
После открытия HTML-страницы в браузере смотрим сколько точек попало в файл. Количество точек = размер файла в байтах.