- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Господа, пытаюсь понять что грузит сервер утилитами htop и atop.
Сайты у меня висят на отдельных юзерах, система работает как fast CGI, так что в принципе ситуация в общем ясна. Осталось только найти скрипты - виновники нагрузки.
Вот вижу я процесс - который грузит сильно процессор и жрет памят, но в htop он выглядит как /usr/bin/php5-cgi php
Как зная PID процесс узнать что за скрипт его вызвал? Реально ли это вообще?
Dram добавил 31.08.2011 в 14:00
strace -p не очень подходит - ибо выдает мегатонны информации, среди которого не понятно что вызвало процесс
server-status покажет, какие запросы в данный момент выполняются к web-серверу.
Можно глянуть lsof -p <pid>, чтобы понять, какие файлы открыты процессом.
Может начать с азов? Читайте документацию апача, узнайте про mod_status.
Помимо strace можно использовать что-то типа
чтобы посмотреть с какими файлами скрипт работает. Или lsof.Может начать с азов? Читайте документацию апача, узнайте про mod_status.
Помимо strace можно использовать что-то типа чтобы посмотреть с какими файлами скрипт работает. Или lsof.
Все равно не понятно, вот что выдает:
lrwx------ 1 user1 user1 64 Авг 31 14:32 0 -> socket:[420604512]
l-wx------ 1 user1 user1 64 Авг 31 14:32 1 -> /var/log/apache2/error.log
l-wx------ 1 user1 user1 64 Авг 31 14:32 100 -> pipe:[420603807]
l-wx------ 1 user1 user1 64 Авг 31 14:32 101 -> pipe:[420602994]
l-wx------ 1 user1 user1 64 Авг 31 14:32 102 -> pipe:[420603100]
l-wx------ 1 user1 user1 64 Авг 31 14:32 103 -> pipe:[420603897]
l-wx------ 1 user1 user1 64 Авг 31 14:32 104 -> pipe:[420603101]
l-wx------ 1 user1 user1 64 Авг 31 14:32 105 -> pipe:[420603808]
l-wx------ 1 user1 user1 64 Авг 31 14:32 107 -> pipe:[420603809]
l-wx------ 1 user1 user1 64 Авг 31 14:32 108 -> pipe:[420603898]
l-wx------ 1 user1 user1 64 Авг 31 14:32 110 -> pipe:[420603899]
l-wx------ 1 user1 user1 64 Авг 31 14:32 2 -> /var/log/apache2/error.log
lrwx------ 1 user1 user1 64 Авг 31 14:32 3 -> (deleted) /tmp/.xcache.509.0.731847287.lock
lr-x------ 1 user1 user1 64 Авг 31 14:32 39 -> pipe:[420566924]
lrwx------ 1 user1 user1 64 Авг 31 14:32 4 -> (deleted) /tmp/.xcache.509.1.1439462411.lock
l-wx------ 1 user1 user1 64 Авг 31 14:32 42 -> pipe:[420566925]
l-wx------ 1 user1 user1 64 Авг 31 14:32 43 -> pipe:[420566991]
l-wx------ 1 user1 user1 64 Авг 31 14:32 44 -> pipe:[420567650]
Мда, xcache тут скрывает имя исходного файла.
Если скрипт достаточно долго выполняется, то вы успеете поймать его и в top и server-status. PID и там и там совпадает.
Вообще, mod_log_slow гораздо удобнее в этом плане. По таким логам даже можно косвенно оценить где у этого скрипта "больше" нагрузки в php или в mysql.
Что удивительно - для этого сайта системой кеширвоания выбрана мемкеш. Как сюда затесался Хкеш не понятно....
Вообще, mod_log_slow гораздо удобнее в этом плане. По таким логам даже можно косвенно оценить где у этого скрипта "больше" нагрузки в php или в mysql.
А что, у апача запись времени отработки запроса в лог - уже отменили?
На самом деле - strace замечательно подойдет, чтобы узнать "какой скрипт" и "чем занимается". Просто его вывод нужно уметь настраивать, а для этого прочитать man. Dram, разберитесь, к примеру - как заставить его выводить только вызовы open().
Что удивительно - для этого сайта системой кеширвоания выбрана мемкеш. Как сюда затесался Хкеш не понятно....
Затем, что кто-то головой думать не привык - и понаставил на сервер все что нужно и не нужно. Для справки - xcache не является "системой кеширования", аналогичной memcache. Это один из механизмов кеширования опкода.
Правильно ли я понимаю что Хкеш должен стоять на сервере для кеширования самого кода, а Мемкеш можно использовать для кеширвоания Контента?
У меня сейчас Хкеш используется для кеширования контента для 8 сайтов, а один сайт использует Мемкеш. (В джумле можно выбрать систему кеширования).
А что, у апача запись времени отработки запроса в лог - уже отменили?
ну там неудобно.
это где-нибудь в "тупичке столлмана" имеет смысл задавать такие вопросы. а тут подразумевается, что люди решают практические вопросы. информации в access.log слишком много и там нет детализации по типам затраченного времени.
mod_log_slow записывает именно то, что нужно для легкого нахождения медленных скриптов. конечно, с установкой модуля могут возникнуть дополнительные проблемы.
не только. xcache позволяет работать и как хранилище данных. можно оставить один xcache.
информации в access.log слишком много и там нет детализации по типам затраченного времени.
Вы хотели сказать - слишком мало? Т.к. формат настраивается - укажите только то, что нужно.
И не забываем про задачу. Она не в отладке медленных скриптов - а в их обнаружении и идентификации. Это на порядок более простая задача.
не только. xcache позволяет работать и как хранилище данных. можно оставить один xcache.
Можно, конечно. Только имхо: лучше отделить мух от котлет.
Вы хотели сказать - слишком мало? Т.к. формат настраивается - укажите только то, что нужно.
много, потому что пишется каждый запрос.
ну вот попробуйте настроить запись запросов занимающих больше 2.5 секунд и отдельно запись общего времени запроса, отдельно sys, отдельно user тоже с дробными секундами.
Можно, конечно. Только имхо: лучше отделить мух от котлет.
xcache это уже котлеты с мухами.
он должен немного быстрее работать чем memcache - данные проецируются в память процесса и в удачных случаях не нужен межпроцессный обмен.