Показ нагрузки от VB

Статус
В этой теме нельзя размещать новые ответы.

avgaz

Участник
Регистрация
18 Окт 2006
Сообщения
189
Реакции
7
В vBulletin в админке есть такая функция в Быстрые ссылки
Код:
Загрузка сервера    2.86  2.58  2.48
Не как не могу понять как такое же сделать обычным скриптом???
 
Это результат linux команды uptime

$ uptime
23:12:45 up 195 days, 3:21, 2 users, load average: 1.58, 1.91, 1.72

можно выполнить эту команду на сервере $uptime = exec( 'uptime' ) и регуляркой вынуть цифры
 
можно выполнить эту команду на сервере $uptime = exec( 'uptime' ) и регуляркой вынуть цифры
То что нужно можно теперь пояснить как мне все эти данные вывести по отдельности ну что бы было по строчно они
И что значят числа 1.58, 1.91, 1.72??? и это для сервера в целом или для одного аккунта на хостинге??
Просто вчера перенес форум с IPB на VB в результате эти числа в админке переваливали за 20 при 100пользователей онлайн и была ошибка БД на max_user_connections хотя на IPB 300онлайн держит нормально без каких либо ошибок БД в чем проблема так и не понял
 
Куда Вы хотите их вывести? Простейший пример
PHP:
<?php
$uptime = exec( 'uptime' );

// Можно сделать проще, выцепить все цифры разом, это более расширенный пример
preg_match( '#load average: ([\d\.]+), ([\d\.]+), ([\d\.]+)#', $uptime, $matches );

printf( 'Load average: %s, %s, %s', $matches[1], $matches[2], $matches[3] );

Это показатель загрузки на сервере (на всём сервере) за последние 1, 5 и 15 минут. Ваши текущие числа говорят о том, что сервер за последние 15минут почти не загружен. Значения > 20 - это уже не есть хорошо. Надо анализировать что именно тормозит. Можно в момент сильной загрузки сервера ввести в консоли (ssh) команду top и посмотреть кто грузит процессор.
DESCRIPTION
uptime gives a one line display of the following information. The current time, how long the system has been running, how many users are currently logged on, and the system load
averages for the past 1, 5, and 15 minutes.
 
Это показатель загрузки на сервере (на всём сервере) за последние 1, 5 и 15 минут. Ваши текущие числа говорят о том, что сервер за последние 15минут почти не загружен. Значения > 20 - это уже не есть хорошо. Надо анализировать что именно тормозит. Можно в момент сильной загрузки сервера ввести в консоли (ssh) команду top и посмотреть кто грузит процессор.
Спасибо. Был бы свой сервер было бы легче, а тут VIP хостнг не посмотришь не чего.
Просто меня смутили эти цифры когда они подлезли к 15 после перехода на VB
 
Быть может просто совпадение. Надо ловить момент и смотреть. Если речь идёт о shared-хостинге, то нагрузку мог создать кто угодно на сервере. Часто хостеры в панеле управления дают статистику использования ресурсов сервера в виде графиков, если таковые имеются по ним сразу всё станет ясно.
 
Быть может просто совпадение. Надо ловить момент и смотреть. Если речь идёт о shared-хостинге, то нагрузку мог создать кто угодно на сервере. Часто хостеры в панеле управления дают статистику использования ресурсов сервера в виде графиков, если таковые имеются по ним сразу всё станет ясно.
Нет панель IPS pro там только статистика на использованные ресурсы по нагрузке не чего нет.
Меня испугало то что после переноса в vBulletin вылезла ошибка БД
Код:
mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: User *****l already has more than 'max_user_connections' active connections
/home/g*****/data/www****/***b/includes/class_core.php on line 311
Это при онлайн и 100 не было хотя на том же IPB 300онлайн полет нормальный в чем может быть проблема??? ведь не может быть такой разницы между форумами этими
 
Эта ошибка говорит лишь о том, что было израсходовано 300 соединений mysql. Причём, Вы не один на этом сервере и сосед по хостингу вполне мог израсходовать 250 соединений. Чтобы это определить наверняка - нужно выполнить SQL команду:
Код:
show processlist;
и она покажет какие запросы в данный момент выполняются и от какого пользователя.

По собственному опыту - соединения чаще всего заканчиваются не из-за наплыва посетителей (хотя это 2й вариант по популярности), а из-за долгой работы скриптов. К примеру, на форуме сидит 50 человек и вдруг страницы начинают грузиться по нескольку десятков секунд, люди не выдерживают и начинают нажимать Ф5 + приходят новые посетители, что резко повышает кол-во запущенных на данный момент скриптов, а каждый скрипт расходует по 1 соединению с БД. Таким образом моментально заканчиваются свободные соединения. От резкого наплыва посетителей скорей всего в первую очередь сработает ограничение веб-сервера в макс. числе коннекшенов.
 
Эта ошибка говорит лишь о том, что было израсходовано 300 соединений mysql. Причём, Вы не один на этом сервере и сосед по хостингу вполне мог израсходовать 250 соединений. Чтобы это определить наверняка - нужно выполнить SQL команду:
Проблема в том что это произошло на форуме VB до этого не когда этого не возникло такой не когда и что это совпадение тоже не верится.
Может в VB есть функция которая режет если определенное число коннектов к ДБ или после переноса который может прошёл криво не закрывает соединения?
Если смотреть через админку переменные MySQL то там
max_connections 1000
max_user_connections 50
если там же смотреть статус MySQL то там
Max_used_connections 161
Что здесь отвечает за ошибку что выше возникла
Цитата:
mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: User *****l already has more than 'max_user_connections' active connections
/home/**/data/www****/***b/includes/class_core.php on line 311
Если второе то почему на IPB в онлайне держит намного больше 250 и не каких ошибок форум не выдает??? а тут до 100 форум выкинул эту ошибку
 
Даже так. У Вас на сервере лимит 50 соединений от одного пользователя. В первый раз я невнимательно прочитал сообщение об ошибке, и думал, что сработал лимит на max_connections.

Теоретически если 50 пользователей одновременно совершат какое-то действие на форуме, лимит будет моментально исчерпан. Тут всё решает время выполнения скрипта. И чем больше цифры в команде uptime, тем медленней будут выполняться Ваши скрипты, а значит, соединения с БД будут дольше заняты по времени и наплыв запросов мгновенно вызовет переполнение.

Вам необходимо выяснить причину сего обстоятельства. Либо ждать очередных 100 пользователей либо устроить небольшой стресс-тест. К примеру, командой ab (в линукс)
Код:
ab -n 200 -c 10 http://урл форума
данная команда пошлёт 200 запросов в 10 потоков на указанный урл. Либо зайти на форум и очень много раз нажать F5 в браузере, будет очень грубо и возможно не сработает :) Первый вариант предпочтительней. Если после такого стресс теста сильно увеличится первая цифра в команде uptime, значит новый форум создаёт большую нагрузку на сервер.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху