Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Net::SNMP ifHcInoctets percentage 
V
    Опции темы
yorm
Дата 9.11.2008, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 1.10.2006

Репутация: нет
Всего: нет



Подскажите, пожалуйста, в чем может быть проблема?

Потребовалось подсчитать процентаж принимаемых октетов. Написал скриптик с использованием Net::SNMP:

Код

use Net::SNMP;

my $host = 'blah';
my $community = 'blah';
#my $in = '1.3.6.1.2.1.2.2.1.10.1';
my $in = '1.3.6.1.2.1.31.1.1.1.6.1';

my $speed = 155000000;
my $speed_oct = $speed /8;

my $session = Net::SNMP->session(
    -hostname=>$host,
    -version => 'v2c',
    -community => $community
);

my $old_time = undef;
my $old_val = undef;
while (1) {

    my $time = time;
    my $result = $session->get_request(
    -varbindlist => [$in]
    );

    print "ifhcinoctets=".$result->{$in}."\n";
    if (defined $old_time) {
    my $tick = $time - $old_time;
    my $dif = $result->{$in} - $old_val;
    my $dif_ps = $dif / $tick;
    my $percent = ($dif_ps * 100) / $speed_oct;
    print "tick=$tick; speed=$speed_oct; dif=$dif; dif_ps=$dif_ps; percent=$percent\n"
    }

    $old_time = $time;
    $old_val = $result->{$in};

    sleep(30);
}


однако через некоторое время обратил внимание, что процентаж зашкаливает за 100% :( Такого же быть не может?:
Код

ifhcinoctets=24017927776411
ifhcinoctets=24018477042168
tick=30; speed=19375000; dif=549265757; dif_ps=18308858.5666667; percent=94.4973345376344
ifhcinoctets=24019029035603
tick=30; speed=19375000; dif=551993435; dif_ps=18399781.1666667; percent=94.9666124731183
ifhcinoctets=24019747943636
tick=30; speed=19375000; dif=718908033; dif_ps=23963601.1; percent=123.683102451613
ifhcinoctets=24020123125963
tick=35; speed=19375000; dif=375182327; dif_ps=10719495.0571429; percent=55.3264261013825
ifhcinoctets=24020662446277
tick=30; speed=19375000; dif=539320314; dif_ps=17977343.8; percent=92.7862905806452
ifhcinoctets=24021201349899
tick=30; speed=19375000; dif=538903622; dif_ps=17963454.0666667; percent=92.7146016344086
ifhcinoctets=24021715705917
tick=30; speed=19375000; dif=514356018; dif_ps=17145200.6; percent=88.4913579354839
ifhcinoctets=24022241442925
tick=30; speed=19375000; dif=525737008; dif_ps=17524566.9333333; percent=90.4493777204301
ifhcinoctets=24022964727922
tick=30; speed=19375000; dif=723284997; dif_ps=24109499.9; percent=124.436128516129
ifhcinoctets=24023502233465
tick=35; speed=19375000; dif=537505543; dif_ps=15357301.2285714; percent=79.2634902119816
ifhcinoctets=24024040437451
tick=30; speed=19375000; dif=538203986; dif_ps=17940132.8666667; percent=92.5942341505376
ifhcinoctets=24024563200840
tick=30; speed=19375000; dif=522763389; dif_ps=17425446.3; percent=89.9377873548387
ifhcinoctets=24025070563362
tick=35; speed=19375000; dif=507362522; dif_ps=14496072.0571429; percent=74.8184364239631
ifhcinoctets=24025583316106
tick=30; speed=19375000; dif=512752744; dif_ps=17091758.1333333; percent=88.2155258494624
ifhcinoctets=24026093319457
tick=30; speed=19375000; dif=510003351; dif_ps=17000111.7; percent=87.742512
...


Я что-то неправильно считаю? Откуда могут появиться лишние октеты?

PM MAIL   Вверх
ginnie
Дата 9.11.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 6
Всего: 49



yorm, Вы уверены, что значение скорости 155000000 верно?

Это сообщение отредактировал(а) ginnie - 9.11.2008, 22:44


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
yorm
Дата 10.11.2008, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 1.10.2006

Репутация: нет
Всего: нет



Спасибо за подсказку, проблему осознал.

Значение скорости реальное, я его взял из ifSpeed oid, но он выдает именно 155 000 000, а скорость интерфейса - 155 Mbps, т.е 155*1024*1024=162 529 280 bps. Подставил его и проблема исчезла
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0885 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.