LV RU EN
Veiktspējas mērīšanas rīki
2016/10/29   Valts Silaputniņš

Mērot veiktspēju pārsvarā interesē tāda mērvienība kā apstrādātie pieprasījumi sekundē. Tāpat svarīgi ir kā mainās veiktspēja pieaugot paralēlo sesiju skaitam – konkurencei. Parasti konkurencei augot ātrdarbība samazinās vienlaicīgi pieaugot atmiņas spiedienam uz serveri.


Apskatīsim rīkus ko parasti izmantojam optimizācijas procesā.

ApacheBench

Labi noder aptuvenai atsevišķu web saita funkciju ātrdarbības novērtēšanai. Tas uztur parasti nepieciešamās HTTP metodes HEAD/GET/PUT/POST tāpat arī atļauj norādīt cookies. Testēšana izpaužas viena norādīta URL “raustīšana” N paralēlās plūsmās.

Pros:

  • Vienkārši.
  • Ātri iegūst aptuvenu vērtējumu.

Cons:

  • Rezultāti var būt apšaubāmi cache efektu dēļ – izpildot ciklā vienu un to pašu pieprasījumu dati visdrīzāk tiek kešoti.
  • Visai švaka servera atgriezto datu analīze (vāja kļūdu kontrole).

Siege

Lielā mēra līdzīgs apskatītajam apachebench galvenā priekšrocība ir iespēja norādīt URL-u kopu, kuru šis rīks apstaigās nejaušā secībā. Tāpat uztur gan GET gan POST

Pros:

  • Ļauj simulēt slodzi līdzīgāku reālai. Ieskaitot norādīt mākslīgas gadījuma aiztures starp pieprasījumiem.

Cons:

  • Samērā vienkārši var panākt situāciju, kad nepietiek sistēmas resursu (sockets/threads).

Tsung

Lietojām retākos gadījumos, jo parasti salīdzinošai testēšanai pietiek ar apachebench un siege. Tomēr ir situācijas, kad šis rīks ir piemērotākais.

Pros:

  • Ļauj simulēt ļoti lielas slodzes, ieskaitot izmantot klasterus.
  • Kompleksi testēšanas scenāriji – ieskaitot dinamiskus scenārijus, kas vadās atkarībā no servera atgrieztiem datiem.
  • Sesiju atbalsts.
  • Iespēja vienlaicīgi simulēt dažādu lietotāju uzvedību noteiktās proporcijās.
  • Gadījuma aiztures simulējot lietotāja darbības.
  • Iespēja testēt ne tikai web serverus, bet arī MySQL u.c. serverus.

Cons:

  • Netriviāli pielietojams.