Ini ialah arahan httperf yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
httperf - Alat pengukuran prestasi HTTP
SINOPSIS
httperf [--add-header S] [--panjang-letup N] [--pelanggan I/N] [--tutup-dengan-set semula]
[-d|--nyahpepijat N] [--status-gagal N] [-h|- membantu] [--babi] [--http-versi S] [--maks-
sambungan N] [--panggilan-paip-maks N] [--kaedah S] [--no-host-hdr] [--num-panggilan N] [--bilangan-
conns N] [--tempoh [d|u|e]T1[,T2]] [--pelabuhan N] [--cetak-balas [header|badan]] [--cetak-
meminta [header|badan]] [--kadar X] [--recv-buffer N] [--cuba semula apabila gagal] [--hantar-penampan N]
[--pelayan S] [--nama pelayan S] [--sesi-kuki] [--ssl] [--ssl-sifir L] [--ssl-tidak-
mengguna semula] [--fikir-masa tamat X] [--masa tamat X] [--uri S] [-v|--verbose] [-V|--versi] [--wlog
y|n,F] [--wsess N,N,X] [--wsesslog N,X,F] [--wset N,X]
DESCRIPTION
httperf ialah alat untuk mengukur prestasi pelayan web. Ia bercakap protokol HTTP kedua-duanya dalam
perisa HTTP/1.0 dan HTTP/1.1 serta menawarkan pelbagai penjana beban kerja. manakala
berjalan, ia menjejaki beberapa metrik prestasi yang diringkaskan dalam bentuk
statistik yang dicetak pada akhir ujian dijalankan. Operasi paling asas bagi
httperf adalah untuk menjana bilangan tetap permintaan HTTP GET dan untuk mengukur bilangan balasan
(respons) kembali dari pelayan dan pada kadar berapa respons tiba.
PENTING: Untuk mendapatkan hasil yang betul, perlu menjalankan paling banyak satu httperf proses
setiap mesin pelanggan. Selain itu, perlu ada proses latar belakang sesedikit mungkin pada kedua-duanya
mesin klien dan pelayan.
CONTOH
httperf --hog --server www
Perintah ini menyebabkan httperf untuk membuat sambungan ke hos www, hantar permintaan untuk
dokumen akar (http://www/), terima balasan, tutup sambungan, dan kemudian
mencetak beberapa statistik prestasi.
httperf --hog --server www --num-conns 100 --ra 10 --timeout 5
Seperti di atas, kecuali sejumlah 100 sambungan dibuat dan sambungan itu
dicipta pada kadar tetap 10 sesaat. Ambil perhatian bahawa pilihan ``--rate'' telah
dipendekkan kepada ``--ra''.
httperf --hog --server=www --wsess=10,5,2 --rate 1 --timeout 5
Punca httperf untuk menjana sejumlah 10 sesi pada kadar 1 sesi setiap
kedua. Setiap sesi terdiri daripada 5 panggilan yang dijarakkan sebanyak 2 saat.
httperf --hog --server=www --wsess=10,5,2 --rate=1 --timeout=5 --ssl
Seperti di atas, kecuali itu httperf pelayan kenalan www melalui SSL di port 443 (the
port lalai untuk sambungan SSL).
httperf --hog --server www --wsess=10,5,2 --rate=1 --timeout=5 --ssl
--ssl-ciphers=EXP-RC4-MD5:EXP-RC2-CBC-MD5 --ssl-no-reuse --http-version=1.0
Seperti di atas, kecuali itu httperf akan memberitahu pelayan bahawa ia hanya boleh memilih daripada
dua suite sifir (EXP-RC4-MD5 atau EXP-RC2-CBC-MD5); tambahan pula, httperf akan guna
HTTP versi 1.0 yang memerlukan sambungan TCP baharu untuk setiap permintaan. Juga, SSL
id sesi tidak digunakan semula, jadi keseluruhan proses penubuhan sambungan SSL
(dikenali sebagai jabat tangan SSL) berlaku untuk setiap sambungan.
PILIHAN
Operasi dari httperf boleh dikawal melalui beberapa pilihan. Alat menyokong
kedua-dua nama pilihan pendek (satu aksara) dan panjang (arbitrari-panjang). Pilihan pendek ialah
diawali dengan sempang depan tunggal (-), pilihan panjang dengan sempang berganda (--). Pelbagai
pilihan pendek boleh dikumpulkan bersama (cth, ``-vV'' bersamaan dengan ``-v -V'') dan panjang
pilihan boleh dipendekkan selagi ia kekal unik. Parameter kepada pilihan boleh
ditentukan sama ada dengan mengikut nama pilihan panjang dengan tanda sama dan parameter
nilai (cth, --letup=10) atau dengan memisahkan nama dan nilai pilihan dengan ruang putih (cth,
--meletus 10).
--add-header=S
Tentukan untuk memasukkan rentetan S sebagai pengepala permintaan tambahan. Ia adalah perlu untuk
nyatakan urutan pengangkutan-pulangan/line-feed yang ditamatkan secara eksplisit. Ini boleh jadi
dilakukan dengan menggunakan urutan pelarian ``\n''. Ini memungkinkan untuk memasukkan
pengepala permintaan berbilang. Contohnya, ``--add-header "Perujuk: foo\nAuth:
rahsia\n"'' akan menambah dua pengepala permintaan (``Perujuk'' dan ``Auth'') pada setiap
permintaan. Urutan pelarian yang disokong lain ialah ``\r'' (carriage-return), ``\a''
(line-feed), ``\\'' (backslash) dan ``\N'' dengan N ialah kod watak yang akan
dimasukkan (dalam oktal).
--panjang-letup=N
Menentukan panjang letusan. Setiap pecahan terdiri daripada N panggilan ke pelayan. The
makna tepat parameter ini bergantung pada penjana beban kerja. Untuk biasa
beban kerja berorientasikan permintaan, lihat penerangan pilihan --wsess.
--no-host-hdr
Menentukan bahawa pengepala "Hos:" tidak boleh disertakan semasa mengeluarkan HTTP
Permintaan.
--num-panggilan.
Untuk beban kerja berorientasikan sesi, lihat perihalan pilihan --wsess.
--pelanggan=I/N
Menentukan bahawa mesin httperf sedang berjalan pada adalah pelanggan I daripada jumlah keseluruhan N
pelanggan. I hendaklah dalam julat dari 0 hingga N-1. Beberapa penjana beban kerja
(contohnya, --wset) menggunakan identiti pelanggan sebagai nilai bias untuk memastikan bahawa tidak semua
pelanggan menjana beban kerja yang sama sempurna. Apabila melakukan ujian itu
melibatkan beberapa mesin pelanggan, secara amnya adalah idea yang baik untuk menentukan ini
pilihan.
--tutup-dengan-set semula
Meminta itu httperf menutup sambungan TCP dengan menghantar RESET dan bukannya pergi
melalui jabat tangan penutupan sambungan TCP biasa. Menghidupkan pilihan ini boleh
mempunyai kesan buruk seperti rasuah data, blok kawalan TCP tersekat atau salah
keputusan. Atas sebab ini, pilihan itu tidak boleh digunakan melainkan secara mutlak
perlu dan walaupun begitu ia tidak boleh digunakan melainkan implikasinya sepenuhnya
faham.
-d=N
--debug=N
Tetapkan tahap nyahpepijat kepada N. Nilai yang lebih besar daripada N akan menghasilkan lebih banyak output.
--status-gagal=N
Menentukan bahawa kod status respons HTTP daripada N harus dianggap sebagai kegagalan
(iaitu, dianggap seolah-olah permintaan telah tamat masa, sebagai contoh). Contohnya, dengan
``--status-gagal=504'' respons dengan status HTTP ``504 Gateway Time-out''
akan dianggap gagal. Kaveat: pilihan ini pada masa ini disokong untuk
beban kerja sesi sahaja (lihat --wsess and --wsesslog pilihan).
-h
- membantu Mencetak ringkasan pilihan yang tersedia dan parameternya.
--babi Pilihan ini meminta untuk menggunakan seberapa banyak port TCP yang diperlukan. Tanpa ini
pilihan, httperf lazimnya terhad kepada menggunakan port ephemeral (dalam julat dari
1024 hingga 5000). Julat pelabuhan terhad ini boleh menjadi halangan dengan cepat
umumnya idea yang baik untuk menentukan pilihan ini untuk ujian yang serius. Juga, ini
pilihan mesti ditentukan semasa mengukur pelayan NT kerana ia mengelakkan TCP
ketidakserasian antara mesin NT dan UNIX.
--http-versi=S
Menentukan rentetan versi yang harus disertakan dalam permintaan yang dihantar ke
pelayan. Secara lalai, rentetan versi ``1.1'' digunakan. Pilihan ini boleh ditetapkan kepada
``1.0'' untuk memaksa penjanaan permintaan HTTP/1.0. Menetapkan pilihan ini kepada mana-mana
nilai selain daripada ``1.0'' atau ``1.1'' boleh mengakibatkan tingkah laku yang tidak ditentukan.
--sambungan maks=N
Menentukan bahawa paling banyak N sambungan dibuka untuk setiap sesi. Pilihan ini adalah
bermakna bersama dengan pilihan --wsess and --wsesslog sahaja.
--panggilan-paip-maks=N
Menentukan bahawa paling banyak N panggilan talian paip dikeluarkan pada setiap sambungan. ini
pilihan adalah bermakna bersama-sama dengan pilihan --wsess and --wsesslog sahaja.
--kaedah=S
Menentukan kaedah yang harus digunakan semasa mengeluarkan permintaan HTTP. Jika ini
pilihan tidak dinyatakan, kaedah GET digunakan. Cara S boleh sewenang-wenangnya
rentetan tetapi biasanya salah satu daripada GET, HEAD, PUT, POST, dll.
--num-calls=N
Pilihan ini bermakna untuk beban kerja berorientasikan permintaan sahaja. Ia menentukan
jumlah bilangan panggilan untuk dikeluarkan pada setiap sambungan sebelum menutupnya. Jika N is
lebih daripada 1, pelayan mesti menyokong sambungan berterusan. Nilai lalai
untuk pilihan ini ialah 1. Jika --panjang-letup ditetapkan untuk B, maka N panggilan dikeluarkan
dalam semburan B panggilan talian paip setiap satu. Oleh itu, jumlah bilangan pecahan sedemikian adalah
N / B (setiap sambungan).
--num-conns=N
Pilihan ini bermakna untuk beban kerja berorientasikan permintaan sahaja. Ia menentukan
jumlah bilangan sambungan untuk dibuat. Pada setiap sambungan, panggilan dikeluarkan sebagai
ditentukan oleh pilihan --num-panggilan and --panjang-letup. Ujian berhenti sebaik sahaja N
sambungan sama ada telah selesai atau gagal. Sambungan dianggap mempunyai
gagal jika sebarang aktiviti pada sambungan gagal membuat kemajuan ke hadapan untuk lebih banyak lagi
daripada masa yang ditentukan oleh pilihan tamat masa --masa tamat and --fikir-masa tamat. Yang
nilai lalai untuk pilihan ini ialah 1.
--tempoh=[D]T1[,T2]
Menentukan selang masa antara penciptaan sambungan atau sesi.
Sambungan dibuat secara lalai, sesi jika pilihan --wsess or --wsesslog mempunyai
telah ditentukan. Sambungan/sesi ``masa antara ketibaan'' ini secara alternatif boleh
ditentukan oleh --kadar pilihan, walaupun lebih fleksibiliti tersedia dengan
--tempoh. . D parameter menentukan taburan masa antara ketibaan. Jika
ditinggalkan atau ditetapkan kepada ``d'', tempoh deterministik (iaitu, tetap) digunakan seperti yang dinyatakan
mengikut parameter T1 dalam unit saat. Jika D ditetapkan kepada ``e'', eksponen (iaitu,
taburan Poisson) digunakan dengan purata masa antara ketibaan sebanyak T1. Akhirnya, jika D
ditetapkan kepada ``u'', pengagihan seragam sepanjang selang [T1,T2) digunakan untuk
masa antara ketibaan. Dalam semua kes, tempoh 0 menghasilkan sambungan atau sesi
dijana secara berurutan (sambungan/sesi baharu dimulakan sebaik sahaja
yang sebelumnya selesai). Nilai lalai untuk pilihan ini ialah 0. Ambil perhatian bahawa
menyatakan, sebagai contoh, --kadar=5 adalah bersamaan dengan menentukan --tempoh=d0.2 or
--tempoh=0.2. Dengan menyatakan --tempoh=u1,3, masa antara ketibaan adalah secara rawak
dipilih daripada selang antara 1 dan 3 saat. Urutan khusus bagi
(pseudo-) masa antara ketibaan rawak adalah sama daripada satu httperf lari ke yang lain sebagai
selagi nilai untuk --tempoh and --pelanggan pilihan adalah sama.
--port=N
Pilihan ini menentukan nombor port N di mana pelayan web sedang mendengar
Permintaan HTTP. Secara lalai, httperf menggunakan nombor port 80.
--cetak-balas[=[header|badan]]
Meminta pencetakan pengepala balasan, kandungan dan ringkasan. Outputnya ialah
diarahkan kepada keluaran standard. Baris pengepala balasan diawali dengan "RH", isi balasan
baris diawali dengan "RB", dan ringkasan saiz balasan diawali dengan "RS". The
awalan diikuti dengan nombor siri yang mengenal pasti secara unik panggilan yang
baris balasan adalah untuk dan aksara bertindih (":") yang menandakan permulaan bagi
baris balasan sebenar. Untuk mencetak tajuk balasan sahaja, hantarkan hujah header untuk ini
pilihan. Untuk mencetak hanya isi balasan, hantar hujah badan kepada pilihan ini.
--print-permintaan[=[header|badan]]
Meminta pencetakan tajuk permintaan, kandungan (jika ada), dan
ringkasan. Keluaran diarahkan kepada keluaran standard. Garis pengepala permintaan adalah
diawali dengan "SH", baris badan permintaan diawali dengan "SB", dan ringkasan permintaan
diawali dengan "SS". Awalan diikuti dengan nombor siri panggilan dan a
aksara bertindih (":") yang menandakan permulaan baris balasan sebenar. Untuk mencetak
hanya meminta pengepala, lulus hujah header kepada pilihan ini. Untuk mencetak hanya
badan permintaan, lulus hujah badan kepada pilihan ini.
--kadar=X
Menentukan kadar tetap di mana sambungan atau sesi dibuat. Sambungan
dicipta secara lalai, sesi jika pilihan --wsess or --wsesslog telah
ditentukan. Dalam kedua-dua kes, kadar 0 menyebabkan sambungan atau sesi menjadi
dijana secara berurutan (sesi/sambungan baharu dimulakan sebaik sahaja
yang sebelumnya selesai). Nilai lalai untuk pilihan ini ialah 0.
--recv-buffer=N
Menentukan saiz maksimum penimbal terima soket yang digunakan untuk menerima HTTP
balasan. Secara lalai, hadnya ialah 16KB. Nilai yang lebih kecil boleh membantu ingatan-
pelanggan terkekang sedangkan nilai yang lebih besar mungkin diperlukan apabila berkomunikasi dengan
pelayan melalui sambungan lebar jalur tinggi, kependaman tinggi.
--cuba semula apabila gagal
Pilihan ini bermakna untuk beban kerja sesi sahaja (lihat --wsess and
--wsesslog pilihan). Jika dinyatakan, panggilan yang menghasilkan respons kegagalan (seperti
ditakrifkan oleh --status-gagal pilihan) dicuba semula serta-merta dan bukannya menyebabkan
sesi gagal.
--send-buffer=N
Menentukan saiz maksimum penimbal hantar soket yang digunakan untuk menghantar permintaan HTTP.
Secara lalai, hadnya ialah 4KB. Nilai yang lebih kecil boleh membantu pelanggan yang mengalami kekangan ingatan
manakala nilai yang lebih besar mungkin diperlukan apabila menjana permintaan besar kepada pelayan
disambungkan melalui sambungan lebar jalur tinggi, kependaman tinggi.
--server=S
Menentukan nama hos IP pelayan. Secara lalai, nama hos ``localhost'' ialah
digunakan. Pilihan ini hendaklah sentiasa dinyatakan kerana ia secara amnya bukan idea yang baik
jalankan klien dan pelayan pada mesin yang sama.
--nama-pelayan=S
Menentukan nama pelayan (lalai) yang muncul dalam pengepala "Hos:" setiap
permintaan dihantar oleh httperf. Tanpa pilihan ini, nama hos (atau alamat IP)
ditentukan oleh pilihan --pelayan digunakan sebagai gantinya.
--sesi-kuki
Apabila pilihan ini dihidupkan, pengurusan kuki didayakan pada setiap sesi.
Maksudnya ialah jika balasan kepada permintaan yang dijana mengikut sesi X
mengandungi kuki, kemudian semua permintaan masa hadapan dihantar mengikut sesi X akan memasukkan ini
biskut juga. Pada masa ini, pengurus kuki masuk httperf hanya menyokong satu kuki
setiap sesi. Jika kuki kedua diterima, kuki baharu akan menimpa kuki
yang sedia ada dan mesej amaran dicetak jika ``--debug 1'' dihidupkan.
--ssl Menentukan bahawa semua komunikasi antara httperf dan pelayan harus menggunakan
Protokol Lapisan Soket Selamat (SSL). Pilihan ini tersedia hanya jika httperf adalah
disusun dengan sokongan SSL didayakan.
--ssl-ciphers=L
Pilihan ini hanya bermakna jika SSL sedang digunakan (lihat --ssl pilihan). Pilihan ini
menentukan senarai L suite sifir yang httperf boleh digunakan dalam merundingkan selamat
sambungan dengan pelayan. Jika senarai mengandungi lebih daripada satu suite sifir,
sifir mesti dipisahkan dengan titik bertindih. Jika pelayan tidak menerima mana-mana
suite sifir yang disenaraikan, penubuhan sambungan akan gagal dan httperf akan keluar
serta merta. Jika pilihan ini tidak dinyatakan apabila --ssl pilihan hadir kemudian
httperf akan menggunakan semua suite sifir SSLv3 yang disediakan oleh SSL asas
perpustakaan.
--ssl-tiada-guna semula
Pilihan ini hanya bermakna jika SSL dan sesi sedang digunakan (lihat --ssl, --wsess,
--wsesslog). Apabila sambungan SSL diwujudkan, pelanggan menerima sesi
pengecam (id sesi) daripada pelayan. Pada sambungan SSL seterusnya, pelanggan
biasanya menggunakan semula id sesi ini untuk mengelakkan perbelanjaan mengulangi
(perlahan) Jabat tangan SSL untuk mewujudkan sesi SSL baharu dan mendapatkan id sesi lain
(walaupun jika pelanggan cuba menggunakan semula id sesi, pelayan boleh memaksa
klien untuk merundingkan semula sesi). Secara lalai httperf menggunakan semula id sesi merentas
semua sambungan dalam satu sesi. Sekiranya --ssl-tiada-guna semula pilihan berkuat kuasa, maka
httperf tidak akan menggunakan semula id sesi, dan keseluruhan jabat tangan SSL akan menjadi
dilakukan untuk setiap sambungan baharu dalam sesi.
--fikir-masa tamat=X
Menentukan masa maksimum yang mungkin diperlukan oleh pelayan untuk memulakan penghantaran balasan
untuk permintaan yang diberikan. Ambil perhatian bahawa nilai tamat masa ini ditambahkan pada tamat masa biasa
nilai (lihat pilihan --masa tamat). Apabila mengakses kandungan web statik, ia biasanya tidak
perlu untuk menentukan pilihan ini. Namun, apabila melakukan ujian dengan jangka masa panjang
Skrip CGI, mungkin perlu menggunakan pilihan ini untuk membolehkan respons yang lebih besar-
kali. Nilai lalai untuk pilihan ini ialah sifar saat, bermakna pelayan
mesti boleh bertindak balas dalam nilai tamat masa biasa.
--masa tamat=X
Menentukan jumlah masa X Bahawa httperf sanggup menunggu pelayan
tindak balas. Tamat masa ditentukan dalam beberapa saat dan boleh menjadi nombor pecahan
(contohnya, --masa tamat 3.5). Nilai tamat masa ini digunakan semasa mewujudkan TCP
sambungan, semasa menghantar permintaan, semasa menunggu balasan, dan apabila menerima a
balas. Jika semasa mana-mana aktiviti tersebut permintaan gagal untuk membuat kemajuan ke hadapan
dalam masa yang ditetapkan, httperf menganggap permintaan telah meninggal dunia, menutup
sambungan atau sesi yang berkaitan dan meningkatkan pelanggan-timo kiraan ralat. The
nilai tamat masa sebenar yang digunakan semasa menunggu balasan ialah jumlah tamat masa ini dan
tamat masa berfikir (lihat pilihan --fikir-masa tamat). Secara lalai, nilai tamat masa ialah
infiniti.
--uri=S
Menentukan URI itu S harus diakses pada pelayan. Untuk beberapa beban kerja
penjana (cth, --wset), pilihan ini menentukan awalan untuk makhluk URI
diakses.
-v
--verbose
Meletakkan httperf ke dalam mod verbose. Dalam mod ini, output tambahan seperti
sampel kadar balasan individu dan histogram seumur hidup sambungan dicetak.
-V
--versi
Mencetak versi httperf.
--wlog=B,F
Pilihan ini boleh digunakan untuk menjana urutan khusus akses URI. Ini adalah
berguna untuk memainkan semula akses yang direkodkan dalam fail log pelayan, contohnya.
Parameter F ialah nama fail yang mengandungi senarai URI yang dipisahkan ASCII NUL
yang harus diakses. Jika parameter B ditetapkan kepada ``y'', httperf akan membungkus
ke permulaan fail apabila sampai ke penghujung senarai (jadi senarai URI
diakses berulang kali). Dengan B ditetapkan kepada ``n'', ujian akan berhenti selewat-lewatnya
apabila sampai ke penghujung senarai URI.
--wsess=N1,N2,X
Meminta penjanaan dan pengukuran sesi dan bukannya permintaan individu.
Sesi terdiri daripada urutan letusan yang dijarakkan oleh pengguna berfikir-
masa. Setiap pecahan terdiri daripada nombor tetap L panggilan ke pelayan (L is
ditentukan oleh pilihan --panjang-letup). Panggilan dalam letusan dikeluarkan seperti berikut:
pada mulanya, satu panggilan dikeluarkan. Sebaik sahaja balasan kepada panggilan pertama ini
diterima sepenuhnya, semua baki panggilan dalam pecahan dikeluarkan serentak. The
panggilan serentak dikeluarkan sama ada sebagai panggilan saluran paip pada berterusan sedia ada
sambungan atau semasa panggilan individu pada sambungan berasingan. Sama ada yang gigih
sambungan digunakan bergantung pada sama ada pelayan membalas panggilan pertama dengan a
balasan yang merangkumi baris pengepala ``Sambungan: tutup''. Jika garisan sedemikian adalah
sekarang, sambungan berasingan digunakan.
Pilihan menentukan parameter berikut: N1 ialah jumlah bilangan sesi
untuk menjana, N2 ialah bilangan panggilan setiap sesi, dan X ialah masa berfikir pengguna
(dalam saat) yang memisahkan letusan panggilan berturut-turut. Sebagai contoh, pilihan
``--wsess=100,50,10 --letup-len 5'' akan menghasilkan 100 sesi dengan jumlah 50
memanggil masing-masing. Memandangkan setiap letusan mempunyai panjang 5 panggilan, sejumlah 10 letusan panggilan
akan dijana setiap sesi. Masa fikir pengguna antara letusan panggilan adalah
10 saat. Perhatikan bahawa masa berfikir pengguna X menandakan masa antara menerima
balasan terakhir bagi panggilan sebelumnya yang meletus dan penghantaran permintaan pertama bagi
letupan seterusnya.
Ujian yang melibatkan sesi selesai sebaik sahaja nombor yang diminta N1 daripada sesi
sama ada gagal atau selesai. Sesuatu sesi dianggap gagal jika ada
operasi dalam sesi mengambil masa lebih lama daripada tamat masa yang ditentukan oleh pilihan
--masa tamat and --fikir-masa tamat. Selain itu, sesuatu sesi juga gagal jika pelayan
mengembalikan balasan dengan kod status yang sepadan dengan yang ditentukan oleh pilihan --kegagalan-
terkini.
--wsesslog=N,X,F
Ini menentukan penjana beban kerja sesi yang serupa dengan --wsess (sila baca itu
penerangan dahulu). Dengan --wsesslog walaupun, banyak aspek sesi pengguna,
termasuk nombor dan urutan URI, kaedah permintaan, masa fikir dan pecah-
parameter panjang, boleh ditentukan dalam fail input F. Dua parameter lain ialah
dikekalkan daripada --wsess, iaitu N, bilangan sesi untuk dimulakan, dan X, yang
masa fikir pengguna pecah ke pecah (perhatikan bahawa ini menjadi masa lalai sejak
fail input F juga boleh menentukan masa fikir pengguna berdasarkan setiap pecah. Kecil
contoh fail input boleh menunjukkan parameter yang boleh ditetapkan dengan paling mudah:
# Baris ulasan bermula dengan ``#'' sebagai yang pertama
# watak. Garisan dengan hanya sempadan ruang putih
# sesi (berbilang baris kosong tidak menjana
# ``null'' sesi). Semua baris lain menyatakan a
# urutan uri (1 uri setiap baris). Jika yang pertama
# aksara baris ialah ruang putih (cth space
# atau tab), uri dianggap sebagai sebahagian daripada a
# letusan yang dihantar selepas yang sebelumnya
# uri tidak pecah.
# takrifan sesi 1 (ini ialah ulasan)
/foo.html think=2.0
/pict1.gif
/pict2.gif
/foo2.html method=POST contents='Siar data'
/pict3.gif
/pict4.gif
# takrifan sesi 2
/foo3.html method=POST contents="Multiline\ndata"
/foo4.html method=HEAD
Penerangan di atas menentukan 2 sesi. Sesi pertama akan dimulakan dengan a
permintaan untuk /foo.html. Apabila respons /foo.html kembali, pecahan 2
permintaan akan menyusul (/pict1.gif dan /pict2.gif). Apabila jawapan yang terakhir
diterima, masa fikir pengguna dua saat dimasukkan sebelum permintaan seterusnya
/foo2.html dikeluarkan. Permintaan ini dihantar sebagai POST. Data yang disiarkan boleh
terkandung di antara petikan tunggal atau berganda. Baris baharu boleh muncul dalam data yang disiarkan
sebagai ``\n'' atau sebagai ``\ ''. Respons /foo2.html diikuti dengan letusan
permintaan /pict3.gif dan /pict4.gif, yang mengakhiri sesi ini. Yang kedua
sesi dimulakan beberapa lama selepas yang pertama, seperti yang ditentukan oleh --kadar or
--tempoh pilihan.
Sesi kedua terdiri daripada 2 permintaan yang dipisahkan oleh masa fikir pengguna lalai
seperti yang dinyatakan oleh X parameter bagi --wsesslog pilihan. Sekiranya N parameter bagi
--wsesslog adalah lebih besar daripada bilangan sesi yang ditakrifkan dalam fail input F, maka
sesi yang ditentukan digunakan berulang kali sehingga N sesi telah dibuat (iaitu
sesi yang ditentukan digunakan secara round-robin).
Seseorang harus mengelak daripada menggunakan --wsesslog bersama-sama dengan yang lain httperf pilihan yang
juga mengawal tingkah laku sesi dan URI beban kerja, iaitu --panjang pecah, --wsess,
--wlog, and --wset.
--wset=N,X
Pilihan ini boleh digunakan untuk menelusuri senarai URI pada kadar tertentu. Parameter
N menentukan bilangan URI berbeza yang harus dijana dan X menyatakan
kadar URI baharu diakses. Kadar sebanyak 0.25 akan bermakna sama
URI akan diakses empat kali berturut-turut sebelum beralih ke URI seterusnya. ini
jenis corak capaian berguna dalam menjana beban kerja yang mendorong secara relatifnya
jumlah trafik yang boleh diramal dalam subsistem I/O cakera pelayan (dengan andaian N
dan fail yang diakses cukup besar untuk melebihi cache penimbal pelayan). The
URI yang dihasilkan adalah dalam bentuk awalan/jalan.html, di mana awalan ialah awalan URI
ditentukan oleh pilihan --wset and jalan dijana seperti berikut: untuk i-fail ke dalam
set kerja, tulis i dalam perpuluhan, memberi awalan nombor dengan sifar sebanyak
yang diperlukan untuk mendapatkan rentetan yang mempunyai sebanyak digit N-1. Kemudian masukkan garis miring
aksara antara setiap digit. Sebagai contoh, fail ke-103 dalam set kerja
yang terdiri daripada 1024 fail akan menghasilkan laluan ``0 / 1 / 0 / 3''. Oleh itu, jika URI-
awalan ialah /wset1024, maka URI yang sedang diakses ialah /wset1024/0/1/0/3.html.
Dalam erti kata lain, fail pada pelayan perlu disusun sebagai pokok 10ary.
OUTPUT
Bahagian ini menerangkan output statistik pada akhir setiap ujian dijalankan. Asas
maklumat yang ditunjukkan di bawah dicetak bebas daripada penjana beban kerja yang dipilih.
Jumlah: sambungan 30000 permintaan 29997 balasan 29997 tempoh ujian 299.992 s
Hubungan kadar: 100.0 conn/s (10.0 ms/conn, <=14 sambungan serentak)
Hubungan masa [Cik]: min 1.4 purata 3.0 maks 163.4 median 1.5 stddev 7.3
Hubungan masa [Cik]: sambung 0.6
Hubungan panjang [balas/sambung]: 1.000
Meminta kadar: 100.0 req/s (10.0 ms/req)
Meminta saiz [B]: 75.0
Balas kadar [balasan/s]: min 98.8 purata 100.0 maks 101.2 stddev 0.3 (60 sampel)
Balas masa [Cik]: tindak balas 2.4 pemindahan 0.0
Balas saiz [B]: pengepala 242.0 kandungan 1010.0 pengaki 0.0 (jumlah 1252.0)
Balas status: 1xx=0 2xx=29997 3xx=0 4xx=0 5xx=0
CPU masa [s]: pengguna 94.31 sistem 205.26 (pengguna 31.4% sistem 68.4% jumlah 99.9%)
Bersih Saya / O: 129.6 KB/s (1.1*10^6 bps)
Kesalahan: jumlah 3 pelanggan-timo 0 soket-timo 0 sambung enggan 3 sambung semula 0
Kesalahan: fd-unavail 0 addrunavail 0 ftab-full 0 other 0
Terdapat enam kumpulan statistik: keputusan keseluruhan (``Jumlah''), berkaitan sambungan
keputusan (``Sambungan''), hasil yang berkaitan dengan pengeluaran permintaan HTTP (``Permintaan''),
hasil yang berkaitan dengan balasan yang diterima daripada pelayan (``Balas''), pelbagai
keputusan yang berkaitan dengan penggunaan CPU (``CPU'') dan rangkaian (``Net I/O'') dan, terakhir tetapi
tidak kurang juga, ringkasan ralat yang dihadapi (``Ralat'').
Jumlah Bahagian
Bahagian ini meringkaskan bilangan sambungan TCP yang dimulakan oleh httperf, bagaimana
banyak permintaan yang dihantar, berapa banyak balasan yang diterima, dan jumlah ujian
tempoh adalah. Dalam contoh output yang ditunjukkan di atas, 30,000 sambungan telah dibuat,
29,997 permintaan telah dihantar dan 29,997 balasan diterima. Tempoh masa
ujian itu hampir tepat 5 minit (300 saat).
Bahagian Sambungan
Bahagian ini menyampaikan maklumat yang berkaitan dengan sambungan TCP yang dihasilkan oleh alat.
Khususnya, baris ``Kadar sambungan'' menunjukkan bahawa sambungan baharu telah
dimulakan pada kadar 100.0 sambungan sesaat. Kadar ini sepadan dengan a
tempoh 10.0 milisaat setiap sambungan. Nombor terakhir dalam baris ini menunjukkan
bahawa paling banyak 14 sambungan dibuka pada bila-bila masa.
Baris pertama berlabel ``Masa sambungan'' memberikan statistik seumur hidup untuk kejayaan
sambungan. Jangka hayat sambungan ialah masa antara sambungan TCP
dimulakan dan masa sambungan ditutup. Sambungan dipertimbangkan
berjaya jika ia mempunyai sekurang-kurangnya satu panggilan yang berjaya diselesaikan. Dalam contoh
output, garisan menunjukkan bahawa hayat sambungan minimum (``min'') ialah 1.4
milisaat, purata (``purata'') hayat ialah 3.0 milisaat, maksimum
(``maks'') ialah 163.4 milisaat, median (``median'') hayat ialah 1.5
milisaat, dan sisihan piawai jangka hayat ialah 7.3
milisaat. Jangka hayat median dikira berdasarkan histogram dengan satu
resolusi milisaat dan jangka hayat maksimum 100 saat. Oleh itu, median ialah
tepat kepada dalam setengah milisaat jika sekurang-kurangnya separuh daripada yang berjaya
sambungan mempunyai jangka hayat tidak lebih daripada 100 saat.
Statistik seterusnya dalam bahagian ini ialah purata masa yang diambil untuk menubuhkan TCP
sambungan. Hanya pertubuhan sambungan TCP yang berjaya dikira. Di dalam
contoh, baris kedua berlabel ``Masa sambungan'' menunjukkan bahawa, secara purata, ia
mengambil 0.6 milisaat untuk mewujudkan sambungan.
Baris akhir dalam bahagian ini dilabelkan ``Panjang sambungan.'' Ia memberikan
purata bilangan balasan yang diterima pada setiap sambungan yang menerima sekurang-kurangnya satu
balas (iaitu, sambungan yang gagal sebelum menghasilkan balasan pertama tidak
dikira). Nombor ini boleh lebih besar daripada 1.0 disebabkan sambungan berterusan.
Bahagian Permintaan
Baris berlabel ``Kadar permintaan'' memberikan kadar permintaan HTTP dikeluarkan
dan tempoh yang sepadan dengan kadar ini. Dalam contoh di atas, permintaan
kadar ialah 100.0 permintaan sesaat, yang sepadan dengan 10.0 milisaat setiap
permintaan. Selagi tiada sambungan berterusan digunakan, hasilnya akan berlaku
bahagian sangat serupa atau serupa dengan hasil dalam bahagian sambungan.
Walau bagaimanapun, apabila sambungan berterusan digunakan, beberapa panggilan boleh dilakukan pada a
sambungan tunggal dalam hal ini hasilnya akan berbeza.
Baris berlabel ``Saiz permintaan'' memberikan saiz purata permintaan HTTP masuk
bait. Dalam contoh di atas, saiz permintaan purata ialah 75 bait.
Bahagian Balas
Untuk ukuran mudah, bahagian ini selalunya yang paling menarik sebagai garisan
berlabel ``Kadar balasan'' memberikan pelbagai statistik untuk kadar balasan. Dalam contoh
di atas, kadar balasan minimum (``min'') ialah 98.8 balasan sesaat, purata
(``purata'') ialah 100 balasan sesaat dan kadar maksimum (``maks'') ialah 101.2
balasan sesaat. Sisihan piawai ialah 0.3 balasan sesaat. Jumlah
disertakan dalam kurungan menunjukkan bahawa 60 sampel kadar balasan telah diperolehi. Pada
hadir, httperf mengumpul sampel kadar sekali setiap lima saat. Untuk mendapatkan a
sisihan piawai bermakna, adalah disyorkan untuk menjalankan ujian cukup lama jadi di
sekurang-kurangnya tiga puluh sampel diperolehi. Ini sepadan dengan tempoh ujian sekurang-kurangnya
150 saat.
Baris berlabel ``Masa Balas'' memberikan maklumat tentang tempoh masa yang diambil untuk
pelayan untuk membalas dan berapa lama masa yang diambil untuk menerima balasan. Dalam contoh, ia
mengambil purata 2.4 milisaat antara menghantar bait pertama permintaan dan
menerima bait pertama balasan. Masa untuk ``memindahkan'', atau membaca,
balasan adalah terlalu pendek untuk diukur, jadi ia muncul sebagai sifar. Ini adalah tipikal apabila
keseluruhan balasan sesuai dengan segmen TCP tunggal.
Baris seterusnya, berlabel ``Saiz balasan'' mengandungi statistik tentang saiz purata
balasan---semua nombor adalah dalam bait yang dilaporkan. Secara khusus, baris itu menyenaraikan
panjang purata pengepala balasan, kandungan dan pengaki (HTTP/1.1 menggunakan pengaki untuk
merealisasikan pengekodan pemindahan ``chunked''). Untuk kemudahan, jumlah purata
bilangan bait dalam balasan juga diberikan dalam kurungan. Dalam contoh,
purata panjang pengepala (``header'') ialah 242 bait, purata panjang kandungan
(``content'') ialah 1010 bait dan tiada pengaki (``footer'' panjang ialah
sifar). Jumlah panjang balasan sebanyak 1252 bait secara purata.
Baris akhir dalam bahagian ini ialah histogram bagi kod status utama yang diterima
balasan daripada pelayan. Kod status utama ialah ``ratusan''-digit
kod status HTTP penuh. Dalam contoh, kesemua 29,997 balasan mempunyai status utama
kod 2. Adalah tekaan yang baik bahawa semua kod status adalah ``200 OK'' tetapi
maklumat dalam histogram tidak cukup terperinci untuk membolehkan status membezakan
kod dengan kod utama yang sama.
Bahagian Pelbagai
Bahagian ini bermula dengan ringkasan penggunaan CPU pada mesin klien.
Dalam contoh, baris berlabel ``CPU time'' menunjukkan bahawa 94.31 saat telah dibelanjakan
melaksanakan dalam mod pengguna (``pengguna''), 205.26 saat dihabiskan untuk melaksanakan dalam sistem
mod (`` sistem '') dan ini sepadan dengan 31.4% pelaksanaan mod pengguna dan 68.4%
pelaksanaan sistem. Jumlah penggunaan adalah 99.9%, yang dijangkakan memandangkan itu
httperf adalah babi CPU. Jumlah penggunaan CPU yang ketara kurang daripada 100% ialah a
tanda bahawa terdapat proses bersaing yang mengganggu ujian.
Baris berlabel ``Net I/O'' memberikan purata daya pemprosesan rangkaian dalam kilobait setiap
saat (di mana satu kilobait ialah 1024 bait) dan dalam megabit sesaat (di mana satu megabit
ialah 10^6 bit). Dalam contoh, purata penggunaan rangkaian kira-kira 129.6 kilobait
sesaat dikekalkan. Nombor dalam kurungan menunjukkan bahawa ini sepadan dengan
kira-kira 1.1 megabit sesaat. Jalur lebar rangkaian ini dikira berdasarkan
bilangan bait yang dihantar dan diterima pada sambungan TCP. Dalam erti kata lain, ia berlaku
tidak mengambil kira pengepala rangkaian atau penghantaran semula TCP yang mungkin berlaku.
Bahagian Ralat
Bahagian terakhir mengandungi statistik tentang ralat yang dihadapi semasa a
ujian. Dalam contoh, dua baris berlabel ``Ralat'' menunjukkan bahawa terdapat a
sejumlah tiga ralat dan ketiga-tiga ralat itu disebabkan oleh pelayan enggan melakukannya
terima sambungan (``connrefused''). Penerangan bagi setiap pembilang ralat
ikut:
pelanggan-timo: Bilangan kali sesi, sambungan atau panggilan gagal disebabkan oleh a
tamat masa pelanggan (seperti yang ditentukan oleh --masa tamat and --fikir-masa tamat) pilihan.
soket-timo: Bilangan kali sambungan TCP gagal dengan tahap soket
tamat masa (ETIMEDOUT).
disangkal: Bilangan kali percubaan sambungan TCP gagal dengan a
``sambungan ditolak oleh pelayan'' ralat (ECONNREFUSED).
sambung semula: Bilangan kali sambungan TCP gagal disebabkan oleh RESET daripada
pelayan. Biasanya, RESET diterima apabila pelanggan cuba menghantar data ke
pelayan pada masa pelayan telah menutup penghujung sambungannya. NT
pelayan juga menghantar RESET apabila cuba mewujudkan sambungan baharu apabila
mendengar baris gilir penuh.
fd-unavail: Bilangan kali httperf proses kehabisan deskriptor fail.
Apabila kiraan ini bukan sifar, keputusan ujian tidak bermakna kerana
pelanggan telah terlebih beban (lihat bahagian "MEMILIH NILAI WAKTU MASA").
addrunavail: Bilangan kali pelanggan kehabisan nombor port TCP
(EADDRNOTAVAIL). Ralat ini tidak sepatutnya berlaku. Jika ia berlaku, hasilnya sepatutnya
dibuang.
ftab-penuh: Bilangan kali jadual deskriptor fail sistem penuh. sekali lagi,
ralat ini tidak sepatutnya berlaku. Jika ia berlaku, hasilnya harus dibuang.
lain: Bilangan kali beberapa jenis ralat lain berlaku. Bila-bila ini
kaunter adalah bukan sifar, adalah perlu untuk mengesan punca sebenar ralat. Kepada
membantu dalam melakukan ini, httperf mencetak kod ralat (errno) yang pertama tidak diketahui
ralat yang berlaku semasa ujian dijalankan.
Bila --wsess or --wsesslog dinyatakan, httperf menjana dan mengukur sesi sebaliknya
panggilan individu dan statistik tambahan dicetak pada akhir ujian. An
contoh output ditunjukkan di bawah.
Sesi kadar [sess/s]: min 0.00 purata 0.59 maks 2.40 stddev 0.37 (240/450)
Sesi: purata 6.45 sambungan/sesi
Sesi seumur hidup [s]: 123.9
Sesi masa gagal [s]: 58.5
Sesi panjang histogram: 4 7 4 ... 3 3 240
Baris berlabel ``Kadar sesi'' menunjukkan kadar minimum, purata dan maksimum
sesi selesai (berdasarkan selang persampelan 5 saat). Ia juga menunjukkan standard
sisihan kadar penyiapan sesi. Nombor dalam kurungan menunjukkan bilangan
sesi berjaya dan berapa banyak sesi telah dimulakan. Dalam contoh di atas,
kadar penyelesaian sesi minimum, purata dan maksimum ialah 0.00, 0.59, dan 2.40 sesi
sesaat, masing-masing. Sisihan piawai ialah 0.37 sesi sesaat dan 240 keluar
daripada 450 sesi berjaya diselesaikan (210 gagal kerana ralat seperti tamat masa).
Baris seterusnya, berlabel ``Sesi:'' menunjukkan purata panjang sesi yang diukur dalam
sambungan. Dalam contoh di atas, purata 6.45 sambungan diperlukan untuk
menyelesaikan satu sesi.
Baris berlabel ``Seumur hidup sesi'' memberikan purata masa yang diambil untuk menyelesaikan a
sesi berjaya. Dalam contoh di atas, ia mengambil purata 123.9 saat.
Baris berlabel ``Masa kegagalan sesi'' memberikan purata masa yang diambil sebelum satu
sesi yang tidak berjaya gagal. Dalam contoh di atas, ia mengambil masa purata 58.5 saat untuk a
sesi gagal.
Akhir sekali, garisan berlabel ``Histogram panjang sesi'' memberikan histogram bilangan
balasan yang diterima oleh setiap sesi. Dalam contoh di atas, 4 sesi tamat selepas menerima
tiada balasan langsung, 7 berakhir selepas menerima satu balasan, dan seterusnya (elipsis menunjukkan
kiraan histogram tambahan yang telah ditinggalkan daripada manual ini atas sebab ruang). Nota
bahawa histogram ini tidak membezakan antara sesi yang berjaya dan gagal.
MEMILIH MASA TAMAT NILAI-NILAI
Sejak mesin itu httperf runs on hanya mempunyai set terhingga sumber yang tersedia, ia boleh
tidak mengekalkan beban HTTP yang tinggi secara sewenang-wenangnya. Sebagai contoh, satu faktor yang mengehadkan ialah terdapat
hanya kira-kira 60,000 nombor port TCP yang boleh digunakan pada bila-bila masa. Sejak pada
kebanyakan sistem UNIX mengambil masa satu minit untuk sambungan TCP ditutup sepenuhnya (tinggalkan
TIME_WAIT negeri), kadar maksimum yang boleh diterima oleh pelanggan ialah paling banyak 1,000 permintaan setiap
kedua.
Kadar mampan sebenar selalunya jauh lebih rendah daripada itu kerana sebelum kehabisan
Port TCP, mesin berkemungkinan kehabisan deskriptor fail (satu deskriptor fail ialah
digunakan untuk setiap sambungan TCP terbuka). Secara lalai, HP-UX 10.20 membenarkan 1,024 fail terbuka
deskriptor setiap proses. Ini bermakna tanpa langkah berjaga-jaga tambahan, httperf boleh
berpotensi sangat cepat menggunakan semua deskriptor fail yang tersedia, pada ketika itu ia boleh
tidak mendorong sebarang beban tambahan pada pelayan. Untuk mengelakkan masalah ini, httperf menyediakan
pilihan --masa tamat untuk menetapkan tamat masa untuk semua komunikasi dengan pelayan. Jika pelayan
tidak bertindak balas sebelum tamat masa tamat, pelanggan menganggap yang sepadan
sesi, sambungan atau panggilan untuk menjadi ``mati,'' menutup sambungan TCP yang berkaitan dan
meningkatkan kiraan ralat ``client-timo'. Satu-satunya pengecualian kepada peraturan ini ialah selepas
menghantar keseluruhan permintaan kepada pelayan, httperf membolehkan pelayan mengambil beberapa tambahan
masa sebelum ia mula menghantar balasan. Ini adalah untuk menampung permintaan HTTP yang mengambil a
lama untuk disiapkan pada pelayan. Masa tambahan ini dipanggil ``pemikiran pelayan
masa'' dan boleh ditentukan mengikut pilihan --fikir-masa tamat. Secara lalai, pemikiran tambahan ini
masa ialah sifar saat, jadi pelayan sentiasa perlu bertindak balas dalam masa yang diperuntukkan
mengikut pilihan --masa tamat.
Tamat masa membenarkan httperf untuk mengekalkan beban yang ditawarkan tinggi walaupun semasa pelayan terlebih muatan.
Sebagai contoh, dengan tamat masa 2 saat dan mengandaikan bahawa 1,000 deskriptor fail adalah
tersedia, beban yang ditawarkan boleh mencapai sehingga 500 permintaan sesaat (dalam amalan,
beban mampan selalunya agak kecil daripada nilai teori). Pada sisi buruknya,
tamat masa secara buatan memotong taburan seumur hidup sambungan. Oleh itu, ia adalah
disyorkan untuk memilih nilai tamat masa yang sebesar mungkin tetapi cukup kecil untuk dibenarkan
mengekalkan kadar yang ditawarkan yang dikehendaki. Tamat masa sesingkat satu saat mungkin boleh diterima,
tetapi tamat masa yang lebih besar (5-10 saat) adalah lebih baik.
Adalah penting untuk diingat bahawa tamat masa tidak menjamin bahawa pelanggan boleh mengekalkan a
beban yang ditawarkan tertentu---terdapat banyak kesesakan sumber lain yang berpotensi. Untuk
contoh, dalam beberapa kes mesin pelanggan mungkin kehabisan masa CPU. Untuk memastikan itu
ujian yang diberikan benar-benar mengukur keupayaan pelayan dan bukan pelanggan, ia adalah bagus
idea untuk mengubah bilangan mesin yang mengambil bahagian dalam ujian. Jika diperhatikan prestasi
kekal sama kerana bilangan mesin pelanggan dipelbagaikan, keputusan ujian berkemungkinan besar
menjadi sah.
Gunakan httperf dalam talian menggunakan perkhidmatan onworks.net