![]() |
Показаны 18 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- VBulletin 2.x.x (http://netadmin.ws/forum/forumdisplay.php?forumid=45)
-- Тормоза при загрузке (http://netadmin.ws/forum/showthread.php?threadid=6361)
Тормоза при загрузке
В последнее время стал тормозить форум, но как-то по странному. Главная страница зачастую не грузится вися 3 минуты с результатом "Zero Sized Reply", еще иногда висят редирректы с тем же результатом, а вот все остальное летает. Настройки сервера не менял, производительность тянет.
Я это могу связать с 2-мя вещями - установкой погодного хака (маловероятно) или вот с этой вещью:
Ошибка
SQL-запрос :
INSERT INTO template
VALUES ( 757, - 1, 'httperror', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r\n<html>\r\n<head><title>$bbtitle -- HTTP Error $error</title>\r\n$headinclude\r\n$headinsert\r\n</head>\r\n<body>\r\n$header\r\n\r\n<br>\r\n\r\n<table width="100%" cellpadding="0" cellspacing="0" border="0" bgcolor="#FFFFFF" align="center"><tr><td>\r\n<table class="cell2" cellpadding="0" cellspacing="0" border="0" width="750" align="center">\r\n <tr>\r\n <td>\r\n <table cellpadding="4" cellspacing="4" border="0" width="100%">\r\n$httperrorbit\r\n </table>\r\n </td>\r\n </tr>\r\n</table>\r\n<p align="center">$forumjump</p>\r\n</td></tr></table>\r\n\r\n<br>\r\n\r\n$footer\r\n</body>\r\n</html>' )
Ответ MySQL:
Duplicate entry '757' for key 1
Dodger
скрипт пытается вставить темплейт с номером 757, который уже существует...
надо либо апдейтить поле 757, либо вставлять в другой номер...
e1
Ð_то не парсинг, а SQL запрос. А может это повлиять на описанные тормоза при загрузке? Может ли такой запрос с такой ошибкой запоганить базу?
Dodger
Как ты себе представляешь, чтобы запрос на вставку мог испортить всю базу? 
ЗЫ. e1 правильно тебе сказал.
Подсказка: шаблоны хранятся в базе. MySQL. При вставке туда шаблона происходит ошибка. 
MarKer
Как ты себе представляешь, чтобы запрос на вставку мог испортить всю базу?
ну, может он что-то заменил (то же начение 757), я же говорю что в этмо не очень понимаю.
шаблоны хранятся в базе. MySQL. При вставке туда шаблона происходит ошибка.
Может вы меня не правильно понимаете, может я вас, но я делаю запрос через phpmyadmin и такая фигня.
Dodger
Всю базу он не может испортить.
Заменить - также. Заменить можно только через UPDATE.
quote:
я делаю запрос через phpmyadmin и такая фигня
А спрашивается зачем ты пытаешся через phpmyadmin сделать этот SQL запрос? Хак какой нить ставишь или еще что?
"Zero Sized Reply" - вообще впервые слышу подобную ошибку! Может быть имело ввизу "Condition by Zero" ?
Базу лудше не восстанавливать - проблем будет больше! Токо если у тебя весь форум нафиг полетит! 
Ну чтоб увеличить производительность могу порекомендовать следующее:
1 - поработать с searchindex !
2 - поставить хак аттачментов в виде файлов! Тоесть файлы будут загружатся не в базу а закачиваться на сайт - нагрузка на базу станет меньше!
Ну и самое значительное - очень много зависит от самого сервера , ОС остановленого на нем и правельно отрулиного апача!
Ну если у тебя такой уж крутой форум - то тут уже ничего не поделаешь - токо если делать мультисерверность!
Хотя я посмотрел щас твой форум - в принцепе он спокойно должен тянуть такую нагрузку! Все таки у тебя не по 300 человек на форуме сидит!
Вполне вероятно, тормоза как раз связаны с погодным хаком.
Попробуй удалить его.
Возможно вот в чем причина. В теле скрипта он делает запрос на удаленный сервер. А сервер сей довольно медленный. Отсюда и результат - пока инфа с сервера получена не будет, скрипт не завершит свою работу (ну, разве что только его закроет ПХП по таймауту) и, соответственно, но выдаст данные.
Правда, то что затяжки бывают по 3 минуты смущают. По-умолчанию в ПХП стоит максимальное время выполнения - 30 сек. Но если его увеличили... то тогда в принципе вполне возможно.
Jaxick
А спрашивается зачем ты пытаешся через phpmyadmin сделать этот SQL запрос? Хак какой нить ставишь или еще что?
Именно, ставлю хак.
Ну и самое значительное - очень много зависит от самого сервера , ОС остановленого на нем и правельно отрулиного апача!
Понимаешь, все летало до какого-то момента, а потом вот - нате. Сервер тянет, я уверен. И настройки никакие апача не менялись.
Ну если у тебя такой уж крутой форум - то тут уже ничего не поделаешь - токо если делать мультисерверность!
Ну куда мне? 
MarKer
В теле скрипта он делает запрос на удаленный сервер. А сервер сей довольно медленный. Отсюда и результат - пока инфа с сервера получена не будет, скрипт не завершит свою работу (ну, разве что только его закроет ПХП по таймауту) и, соответственно, но выдаст данные.
Если не сложно, зайди и глянь как я сделал. На главной странице только таблица добавилась, пару картинок и столько же линков. Дефолтовую версию немножко переделал.
К слову: не вписывайте ид при добавлении новых записей если не уверены что такого ид не существует или не требуется конкретный ид (пр.: востановление удаленного юзера). Используйте NULL, ид сгенерируется автоматически.
__________________
Всегда есть решение.
Dodger
Посмотрел...
Знаешь, попробуй где-нибудь на том же сервере поставить паралельно "чистый" форум, без хаков. Ð_то сразу определит проблему - т.е. хаки ли виноваты, или все-таки проблемы с сервером.
To Dodger
А у меня твой форум летает!!!!!
Тоесть страницы открываются моментально и нету никаких ошибок!
Хмм... реально.
Зарегился... стал погоду настраивать... все ОК, все нормально.
НО! Стоило мне сменить отображения градусов с Фаренгейтовской на Цельсия... редирект "Спасибо за обновление настроек отображения погоды! Сейчас вы увидете прогноз, соответствующий новым установкам." завис.
спасибо за совет polo
MarKer
Знаешь, попробуй где-нибудь на том же сервере поставить паралельно "чистый" форум, без хаков. Ð_то сразу определит проблему - т.е. хаки ли виноваты, или все-таки проблемы с сервером.
даже не подумал так сделать, обязательно попробую, отпишу по финалу.
редирект "Спасибо за обновление настроек отображения погоды! Сейчас вы увидете прогноз, соответствующий новым установкам." завис.
ну вот, висят редиректы и главная, все остальное (пользовательская панель, админ панель, просмотр темы и т.п. летает)
Jaxick
"Zero Sized Reply" - вообще впервые слышу подобную ошибку! Может быть имело ввизу "Condition by Zero" ?
нет, я не ошибся, см: скриншот.
поставил я чистенький форум, правда немножко другой версии (2.3.2, а на главной 2.3.0, но разницы думаю большой нет). Сейчас вроде все летает - и "чистый" и основной. У тех, кого подвисал форум при загрузке просьба посмотреть сразу и http://www.pcforum.ru/site/test/ Я думаю на втором все будет шустро.
Ну может у кого-нибудь есть какие-нибудь преположения, в чем дело? Тормозит только главная и редирректы, а ВСЕ остальное летает (смотрел загруженность процессора при лаге - от 0.3 до 1.2%
, и память хоть попой жуй). Плиз, а то еще не набравшийся народ уходить собрался, посещяемость упала, да вообще противно.
Все те же тормоза...
На "http://www.pcforum.ru/site/test/" все летает...
Jaxick
Базу лудше не восстанавливать - проблем будет больше!
А какие могут быть проблемы и из-за чего? Если у меня полный бекап, я задропаю все и залью файлик?
Проблема решена, спасибо всем. Я совершеноо случайно стал рыться в индексе и нашел там запрос инфо на сайт www.msnbc.com (собсна откуда и бретсья погода). Так вот, когда я писал в начале что я проверял на тормоза при загрузке отключая запрос погоды я просто уберал из forumhome $currentweather (у меня немножко измененный скрипт погоды для forumhome), а в индексе всеравно же осталось:
// ###################### Get Weather #######################
if ($weatherpage!=1 or !isset($weatherpage)) {
$usersettings = $DB_site->query_first("SELECT * FROM weather_usersettings WHERE userid=$bbuserinfo[userid]");
if (!isset($usersettings[userid])) {
$usersettings[accid] = "USNY0996";
$usersettings[tpc] = "1";
$usersettings[tps] = "1";
$DB_site->query("INSERT INTO weather_usersettings (userid,accid,tpc,tps) VALUES ('$bbuserinfo[userid]','$usersettings[accid]','$us
ersettings[tpc]','$usersettings[tps]')");
}
$userdata = $DB_site->query_first("SELECT * FROM weather_userdata WHERE userid=$bbuserinfo[userid]");
$datecut = $userdata[time];
if ((time()-7200)>$datecut or $forceupdate=="yes") {
$rawdata = fsockopen("www.msnbc.com",80,$num_error,$str_error,30);
if(!$rawdata) {
$weather[error_num] = $num_error;
$weather[error_str] = $str_error;
} else {
fputs($rawdata,"GET /m/chnk/d/weather_d_src.asp?acid=$usersettings[accid] HTTP/1.0\n\n");
....... //вырезано, т.к. не представляется информативным
eval("\$currentweather = \"".gettemplate("forumhome_weather")."\";");
}
| Формат времени GMT. Текущее время 09:19. | Показаны 18 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.