![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Добрый день.
В последнее время на сервере стала ложиться БД на 20-30 секунд, причем происходит это в разное время и в режиме online я не могу выловить причину. Есть подозрение что в этом виноват один из доброй сотни cron-скриптов, но метод перебора виновника (отключили – проверили, включили) – это не наш случай (простой не позволителен). Так вот, сам вопрос – как можно собрать логи (для дальнейшего анализа) по использованным ресурсом с адресом скрипта и какие ресурсы (а главное сколько) были задействованы? -------------------- Amazing |
|||
|
||||
| Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
А хостер не дает такой информации? Например у Джино есть страница где показаны какие скрипты сколько процессорного времени отъели и также по базе данных sql запросы.
|
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Vardoulacha, хостер дает тока железо.
P.S. Джино, что такое джино -------------------- Amazing |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Джино - это бесплатный хостер с php. Вероятно, имелось ввиду, что даже джино такое умеет ;)
Можно включить лог sql сервера для долго выполняющихся запросов. http://dev.mysql.com/doc/refman/5.1/en/query-log.html. не факт, что это сразу поможет, но по времени можно попытаться ассоциировать его с логом выполнения. Обычно, долгие запросы либо имеют проблемы с индексами, либо натыкаются на блокировку в обновляемой таблице и ждут. Либо просто дофига данных. Либо нужно искать специалиста Можно на момент очередного "падения" сервера поднять лог и вычислить потенциальных "скриптов-вредителей". Так как лог, обычно, храниться за некоторое время, то, вероятно, не очень сложно набрать статистику по ним уже сейчас. Потом можно переставить период вызова "вредителей". Получить новый список, провести новый анализ. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
Бесплатный вряд ли такое умеет, я на платном аккаунте jino.ru А что если в этих скриптах (которые по крону) собрать статистику самостоятельно? echo "Initial: ".memory_get_usage()." bytes \n"; echo "Peak: ".memory_get_peak_usage()." bytes \n"; $data = getrusage(); echo "User time: ".($data['ru_utime.tv_sec'] + $data['ru_utime.tv_usec'] / 1000000); |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Скриптов не мало? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
неа))) там очень много вычислений происходит, почти на все случае жизни. вычисления долгие (от 10сек до 3 минут) и при каждом запросе пользователя их нельзя использовать, вот приходится это делать по крону и результат кэшировать. -------------------- Amazing |
|||
|
||||
| Sanchezzz |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Профилирование нужно встраивать.
В интереснейших нас местах
Вывод всех брекмачей
Ну все это ручное отлавливание да и к тому же это нужно сохранять. Это сообщение отредактировал(а) Sanchezzz - 22.10.2013, 07:05 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
||||||
|
|||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Sanchezzz, Статистика собирает только memory_get_usage? Ну и как это поможет при блокировке базы данных?
Добавлено через 1 минуту и 49 секунд Sanchezzz, открывающий [ code] потерян -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
спс, за тег, не знаю как я его не набрал, похмелье
В целом не как, но если делать замеры по всему скрипту даст хорошую статистику в каких местах тормозит по замеру времени. Если база упала мы получаем ексепшен, можно и нужно эти эксепшины отлавливать и записывать. Любую ошибку в php можно отловить пусть даже через
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
я как раз об этом. У тебя нагрузка на БД непрогнозируема. И подвисать может из-за совокупности совпавших по времени кривых (или не кривых, но сложных очень нужных ) запросов. Сделай некий тестовый запрос. Он должен быть максимально легким, чтобы не нагружать БД. Но при этом он должен быть подверженным падению БД в те самые 20-30с. Дальше просто. Вешаешь скрипт, которые каждые 10с выполняет этот запрос (поэтому он должен быть легким). Контролируешь его задержку. Если он не выдал ответ за 2-3с. Делаешь show processlist из этого же или параллельного скрипта. Добавлено через 3 минуты и 4 секунды У него этих мест сотни только в кроне. Плюс сам сайт. И пользуйтесь xhprof он может работать даже под нагрузкой 80к уников в час - потеряешь не более 20% производительности (для сравнения xdebug сажает производительно в 2-10 раз) Добавлено через 3 минуты и 46 секунд Pinba все то же, что ты хочешь своим скриптом и насколько я знаю - много больше. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Пинба скажет сколько скрипт и всего ресурсов сейчас используется от БД до железа.
хы это не мой класс стандартный выдрал из коханы. Это сообщение отредактировал(а) Sanchezzz - 22.10.2013, 19:01 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
хм. интересное решение, надо попробовать. Сейчас удалось точно увидеть что виноват MySQL, причем он уперся не в оперативу а в CPU:
-------------------- Amazing |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |