Нагрузка: 99% и сайт забанен

kolyazdv

Новичок
Нагрузка: 99% и сайт забанен

Ребята нужна помощь...

фирма купила у http://shop-inet.ru/ ... магазин... мне поручили дорабатывать и переделывать его...
все класно было класно скрипт отладил запустил... но вот беда...


сегодня блокируют сайт и хостер присылает письмо:

Здравствуйте, уважаемый абонент!

Аккаунт заблокирован автоматически системой.

Запросы: SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_MANIPULATION, ACTION_TIMING, ACTION_STATEMENT, EVENT_OBJE
Нагрузка: 99%
Время: 10:43:16
адрес сайта

Выход из ситуации:
1. Отключение скрипта (в данном случае всего магазина).
2. Переход на тарифные планы по VPS.

пообщалися с ним он открывает доступ... начинаю смотреть логи...
193.16.158.2 - - [24/Mar/2008:10:43:01 +0200] "GET /images/bg.jpg HTTP/1.0" 304 - "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
193.16.158.2 - - [24/Mar/2008:10:43:02 +0200] "GET /images/logo.jpg HTTP/1.0" 200 40097 "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
193.16.158.2 - - [24/Mar/2008:10:43:02 +0200] "GET /images/ss.gif HTTP/1.0" 304 - "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
193.16.158.2 - - [24/Mar/2008:10:43:02 +0200] "GET /images/online1.gif HTTP/1.0" 200 141 "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
193.16.158.2 - - [24/Mar/2008:10:43:03 +0200] "GET /1.gif HTTP/1.0" 200 49 "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
193.16.158.2 - - [24/Mar/2008:10:43:03 +0200] "GET /images/logo2.jpg HTTP/1.0" 200 5911 "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
193.16.158.2 - - [24/Mar/2008:10:43:07 +0200] "GET /images/loading.gif HTTP/1.0" 200 2997 "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
193.16.158.2 - - [24/Mar/2008:10:43:07 +0200] "GET /images/bg11.gif HTTP/1.0" 200 1046 "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
193.16.158.2 - - [24/Mar/2008:10:43:07 +0200] "GET /images/bg12.gif HTTP/1.0" 200 238 "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
193.16.158.2 - - [24/Mar/2008:10:43:08 +0200] "GET /images/bgleft.gif HTTP/1.0" 200 74 "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
66.249.72.204 - - [24/Mar/2008:10:43:10 +0200] "GET /show_good.php?idtov=8514 HTTP/1.1" 200 121548 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
193.16.158.2 - - [24/Mar/2008:10:43:17 +0200] "GET /images/sss.gif HTTP/1.0" 200 90 "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
193.16.158.2 - - [24/Mar/2008:10:43:18 +0200] "GET /show_cat2.php?grid=67 HTTP/1.0" 200 127439 "http://site.ru/osnov.php?c=24" "Opera/9.26 (Windows NT 6.0; U; ru)"
66.249.72.204 - - [24/Mar/2008:10:43:23 +0200] "GET /show_proz.php?idproz=71 HTTP/1.1" 200 157239 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
193.16.158.2 - - [24/Mar/2008:10:43:28 +0200] "GET /images/bgleft33.jpg HTTP/1.0" 302 293 "http://site.ru/show_cat2.php?grid=67" "Opera/9.26 (Windows NT 6.0; U; ru)"


т. е. во время Время: 10:43:16 - к скрипту якобы никто не обращался
ну если не считать
66.249.72.204 - - [24/Mar/2008:10:43:10 +0200] "GET /show_good.php?idtov=8514 HTTP/1.1" 200 121548 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

короче голова кипит... бас ругаеться... сайт лежит... а я даже ненаю каким боком подойти к решеню проблеммы

подскажите как ее решать? (спецы что продали скрипт морозяться)

-~{}~ 24.03.08 17:25:

еще вопрос
1) как можно сделать профилирование отдельных блоков магазина, с целью замера времени исполнения блоков программы?
2) возможно ли отследить все запросы к БД?
3) мог ли гугл бот повесить сайт?
 

tashkentchi

Новичок
Важно знать собственно запрос и структуру таблицы. Вывод EXPLAIN. И даже не один запрос, а все запросы: сколько, какие, самые долгие / самые частые. А также системные переменные мускула.

Для профилирования запросов в ZF я пользуюсь Zend_Db_Profiler-ом.

Методы борьбы известные: оптимизация самих запросов и структуры таблиц, создание индексов, оптимизация конфигурации сервера. Если не помогает, то искусственная денормализация таблиц для упрощения запросов и кэширование. Если и это не помогает, то масштабирование системы. Если и это не помогает (или слишком дорого), то упрощение бизнес-логики.

Оптимизация - серьезная и длительная работа. Заплатка в 5 мин., завтра оторвется. Поэтому лучше, все-таки договорится с создателями шоп-инета о помощи (они сделают работу быстрее). Если общаться вежливо, то они наверняка помогут. Им вряд ли нужна дурная слава в сети.

Еще у меня был случай, когда сайт упал из-за неправильного конфигурирования мускула хостером. Мы (я + наш админ) тогда мирно обговорили это дело с хостерским админом, совместными усилиями переконфигурили мускул и остались довольны друг другом.
 

kolyazdv

Новичок
Написал маленкий класик


PHP:
class microTimer 
{     
 function start() 
{          
global $starttime;          
$mtime = microtime ();          
$mtime = explode (' ', $mtime);          
$mtime = $mtime[1] + $mtime[0];          
$starttime = $mtime;      }      

function stop() {         
 global $starttime;         
 $mtime = microtime ();          
$mtime = explode (' ', $mtime);        
  $mtime = $mtime[1] + $mtime[0];      
    $endtime = $mtime;     
     $totaltime = round (($endtime - $starttime), 5);      
    return $totaltime;      }  
}
Пытался замерить какой блок грузит систему... но он мне при одинаковых параметрах выдает разные значения
от 0.17 до 4 сек

количество товаров 2500
клиентов около 200...
груп товара 40
по брендам тоже около этого
т. е. для самого простого сервера эт не проблемма... а админ хостинга говорит что повесили его 4х ядерный сервак

саппорт разработчиков посоветовали съехать на другой хостинг...
но мне кажиться что проблемма в скрипте..
т. к. нагрузка была на сервер последние три дня... как раз в это время работал гугл бот

ребята как вычислить что могла нагрузить так сервак?

это должно быть у хостинга?
иль это скрипт который нада установить?

гугл на Zend_Db_Profiler дал тока настрйки подключения.. и как работать с ним :(
 

Kelkos

Сам себе программер
Слушай, если все запросы в магазе идут через класс работы с БД, то поставь там снифф с таймером и меряй..

Кстати, а что а хостер и что а тариф? Может реально надо свалить с него?
 

kolyazdv

Новичок
хостер выбирали вроде как нормальный - http://hostbizua.com/

тариф Biz30 http://hostbizua.com/bin/hosting

но проблемма в том что запросы идут не через клас... и бывает что на одной странице их около 30 шт
 

korchasa

LIMB infected
slow-query-log что показывает?

Рановато упал магазинчик...данных то мало.

Как связаны клиенты и товары? Многие-ко-многим? Если да, то какие там запросы
 

kolyazdv

Новичок
Письмо саппорту хостинга

>Здравствуйте, Support.Team.
>есть ли возможность отследить все запросы к БД?
> Нет, на виртуальном хостинге.
>
> а если в самом mysql?
> мне phpMyAdmin показывает что переменая
> log OFF
> возможно ее поставить в ON иль это проблематично?

Это сильно проблематично.
Вы не один на сервере, и включение логирования перегрузит дисковую
подсистему, запросов то не 1 в минуту.

связь клиенты - товары идет через табл заказы, в которой подченено какие товары выбрал клиент
 

Scud

Новичок
Разоритесь на виртуальный выделенный сервер, цена вопроса 30 евро в месяц, и решайте свои проблемы на нём. Никто вам ничего не отключит и не скажет + сами будете всем рулить.
 

tashkentchi

Новичок
Zend_Db_Profiler: http://framework.zend.com/manual/ru/zend.db.profiler.html
Вам не поможет, так как не пользуете ZF.

А вобщем-то советую вам попользовать какой нибудь хороший класс для работы с базой. Например, DBSimple ( http://dklab.ru/lib/DbSimple/ ), который значительно упрощает код и имеет удобные средства для кэширования результатов запросов.

Собственно, сам мускул должен их кэшировать. Но раз он на вашем хосте такой падучий и неприкасаемый, то организуйте кэширование сами.

Ну а свой сервак - вообще решает все такие проблемы. (хотя создает другие :) )
 

Alexandre

PHPПенсионер
что вы советуете разные классы,
человек купил магазин,
пусть с этой проблемой разбирается саппорт продавца,
раз за это ЗАПЛАЧЕНО

а на будущее передай начальству, что проще самому разработать, пусть дольше чем покупать непонятно какие скрипты, из-за которых банят сайт. Это не первый случай, когда втюхивается г-но, а потом возникают проблемы на хостинге.
 

Alexandre

PHPПенсионер
Но согласен, что лучше свое разрабытывать, чем чужое переделывать.
По этому, надо напрячь того, кто это г-но разрабатывал и за него получил деньги.
у него времени на разборки и доработку уйдет соизмеримо с разработкой нового.
 

kruglov

Новичок
Alexandre
Если бы напрячь производителя было бы дешевле, его давно напрягли бы.
 

kolyazdv

Новичок
Дорабатывать они согласны да тока за доп плату.... которая = стоимости магазина...
насчет переезда на более дорогой хостинг не вижу смысла если скрипт глючный.. то хоть какой бы хостинг не был он его будет глючить...

ща пытаюся упростить запросы... исключить дублирование...
тут же еще беда была что половину скриптов была закодирована зендом... ща хоть открыли вот и зарылся голова кипит... зато терь установил на локалке... гоняю... но что бы что то выскакивало... зацикливалося пока не заметил.... :(

посоветовали б мне как мона скрипт нагрузить... типа как гугл бот...
 

tashkentchi

Новичок
гугл бот мало грузит сайты с низким пиаром. (а только что созданный сайт вряд ли имеет высокий PR)

Вот мой любимый дебагер - http://xdebug.org/

Для нагрузочного тестирования гляньте http://opensta.org/ , - но я его не юзал.
 
Сверху