Узнать в каком месте происходит задержка

Здравствуйте.
Имеется высоконагруженный сервер. Работает на PHP + MySQL + Apache (backend) + nginx (frontend).
Проблема заключается в следующем: любой, самый простейший PHP скрипт, выполняется около 5 секунд.
Пример скрипта:
	$query = mysql_query("select `banned` from users where `user_id`='$id' LIMIT 1");
	$data = mysql_fetch_assoc($query);
	if($data['banned'] === '1')
	{
		echo 'Your account has been suspended.';
		exit;
	}


Сначала грешил на БД, попробовал выполнить запрос напрямую в phpMyAdmin (который, кстати, тоже очень тормозит): Отображает строки 0 — 0 (1 всего, запрос занял 0.0001 сек.), т.е. видно, что проблема находится не в долгом запросе.

Подскажите, пожалуйста, как посмотреть, на каком из этапов происходит задержка? Спасибо заранее.
  • Вопрос задан
  • 4366 просмотров
Решения вопроса 1
@Petrik
Проверьте потери пакетов и количество полуоткрытых соединений ( netstat -tuna | grep SYN_RECV )
У апача посмотрите server-status — проверьте сколько воркеров работает/ простаивает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ese
@ese
Front-end developer
Причин может быть много, чтоб явно ее установить изучите статистику и логи на серверах. Первым делом посмотрите не уперлись ли вы в выделенную полосу канала:) Проанализируйте вывод запроса SHOW STATUS в MySQL, посмотрите на загрузку винтов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы