AnyEvent::HTTPBenchmark
Upcoming SlideShare
Loading in...5
×
 

AnyEvent::HTTPBenchmark

on

  • 1,596 views

Perl mova presentations about the my product

Perl mova presentations about the my product
AnyEvent::HTTPBenchmark

Statistics

Views

Total Views
1,596
Views on SlideShare
1,596
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

AnyEvent::HTTPBenchmark AnyEvent::HTTPBenchmark Presentation Transcript

  • AnyEvent::HTTPBenchmark Наим Шафиев Perl Mova + YAPC::Russia 2010
  • Why not apache benchmark(siege httperf and etc)?
    • Гибкость
    • Соотвественно легкой модификация кода( возможность тестирование протоколов прикладного уровня(SOAP ,REST)
    • Более полная статистика
  • AnyEvent::HTTPBenchmark Но код очень сложный и запутанный ,так что пришлось писать свой бенчмаркер на великом неблокирующем фреймворке AnyEvent + Я хотел потестить его скорость)
  • AnyEvent::HTTPBenchmark Так появился AnyEvent::HTTPbenchmark Он кстати появился на spb hackday 2
  • AnyEvent::HTTPBenchmark Скорость всего на 10-30% меньше чем сам ab и это связанно из-за неспособности кешировать AnyEvent::DNS Но это скоро ;) пофиксят .
  • AnyEvent::HTTPBenchmark
    • Умеет делать нагрузочное тестирование
    • Статистика по самому тесту
    • Дополнительная информация по каждому запросу
  • Hackathon is cool
      За вчера сделали
    • Сделали модуль
    • Добавили разные вкусные фишки
    • Добавили документацию
    • Убрали зависимости – DateTime Time::HiRes
  • Hackathon is cool
      Однако возникли некоторые траблы
    • Сложно познать AnyEvent по AnyEvent::Intro
    • Нужно делать example по использованию( экономиться много времени)
  • Проблемы AnyEvent::HTTP не умеет dns caching Но AnyEvent::UA умеет, правда его нет на cpan ( http://github.com/Mons/AnyEvent-UA )
  • Проблемы AnyEvent::HTTP очень неплох.Правда леманн Любит показывать свой высший пилотаж :)
  • Проблемы sub dns_pack($) { my ($req) = @_; pack "nn nnnn a* a* a* a* a*", $req->{id}, ! !$req->{qr} * 0x8000 + $opcode_id{$req->{op}} * 0x0800 + ! !$req->{aa} * 0x0400 + ! !$req->{tc} * 0x0200 + ! !$req->{rd} * 0x0100 + ! !$req->{ra} * 0x0080 + ! !$req->{ad} * 0x0020 + ! !$req->{cd} * 0x0010 + $rcode_id{$req->{rc}} * 0x0001, scalar @{ $req->{qd} || [] }, scalar @{ $req->{an} || [] }, scalar @{ $req->{ns} || [] }, $EDNS0 + scalar @{ $req->{ar} || [] }, # EDNS0 option included here (join "", map _enc_qd, @{ $req->{qd} || [] }), (join "", map _enc_rr, @{ $req->{an} || [] }), (join "", map _enc_rr, @{ $req->{ns} || [] }), (join "", map _enc_rr, @{ $req->{ar} || [] }), ($EDNS0 ? pack "C nnNn", 0, 41, MAX_PKT, 0, 0 : "") # EDNS0 option } our $ofs; our $pkt; # bitches
  • Проблемы Этот кусок перехачить мы не смогли под Dns кеширование ;) И правду #bitches
  • Ближайшие Планы Доделать библиотеку(каркас для создания своих бенчмарков) Решить проблему с dns caching (скорее всего перейдем на AnyEvent::UA )
  • Установка cpan -i AnyEvent::HTTPBenchmark или(App::cpanminus более предпочтитилен) cpanm AnyEvent::HTTPBenchmark
  • Пример использования Bencmark.pl –url http://ya.ru -n 100 -c 10 -verbose 1 #делаем 100 коннектов в 10 паррарельных клиентов с показыванием результат каждого запроса!
  • Контакты Мои выкладки на cpan http://search.cpan.org/~naim/ Репозитарий http://github.com/shafiev/AnyEvent-HTTPBenchmark email: shafiev@gmail.com