PRIBADONG OFFSHORE INFRASTRUCTURE
Imbakan at pagbawiAdvanced · 6 min na pagbabasa

Sukatin ang performance ng NVMe nang hindi nililinlang ang sarili

Tukuyin ang I/O pattern, kontrolin ang cache effect at suriin ang latency distribution bago gumawa ng konklusyon sa application mula sa disk test.

Ni SwissOctet Editorial
ANG DIREKTANG SAGOT

Ang isang kapaki-pakinabang na pagsubok sa imbakan ay tumutugma sa laki ng operasyon, pattern ng access, concurrency at mga kinakailangan sa durability ng application. Itala ang mga kondisyon ng pagsubok at distribusyon ng latency, pagkatapos ay kumpirmahin ang resulta gamit ang mga pagsukat ng application.

01

Magsimula sa tanong tungkol sa imbakan, hindi sa iskor

Magpasya kung ano ang kailangan mong malaman bago magpatakbo ng benchmark. Maaaring iniimbestigahan mo ang mabagal na database commits, throughput ng file-distribution o isang build process na lumilikha ng maraming maliliit na file. Ang mga workload na iyon ay hindi humihingi ng parehong bagay sa disk. Ang isang malaking sequential copy ay maaaring magmukhang kahanga-hanga habang kakaunti ang sinasabi tungkol sa pagkaantala na nararanasan ng isang serbisyong gumagawa ng maliliit na random reads.

Dinisenyo ang NVMe para sa non-volatile media at mahusay na parallel I/O, ngunit ang pangalan ng protocol nito ay hindi naglalarawan sa bawat bahagi ng isang naka-host na storage path. Mahalaga pa rin ang virtualisation, file system, resource contention at application. Sumulat ng test hypothesis tulad ng kung ang storage latency ay nagpapabagal sa isang partikular na operasyon, sa halip na subukang gumawa ng numero na nagpapatunay na mabilis ang buong server.

02

Ilarawan ang workload sa mga terminong maaaring ulitin

Itala ang laki ng operasyon, sequential o random na pattern, read-to-write mix, bilang ng mga job at queue depth. Isama ang laki ng dataset at tagal ng pagsubok. Ipinaliwanag ng dokumentasyon ng fio ang mga kontrol na ito sa workload at ang mga available na I/O engine. Ang inilaan na depth ay maaaring hindi makamit ng bawat engine o setup, kaya basahin ang iniulat na pag-uugali pati na rin ang configuration na hiniling mo.

Panatilihin ang isang kopya ng paglalarawan ng pagsubok sa tabi ng resulta. Itala ang operating system, file system, mount options, aktibidad ng serbisyo at available na kapasidad. Kung ihahambing mo ang mga configuration, baguhin ang isang kaugnay na kondisyon sa isang pagkakataon. Ang isang pagsubok na may ibang pattern ng access o concurrency ay hindi makatarungang maiharap na parang ang storage medium lamang ang nagbago.

Pattern ng applicationDimensyon ng pagsubok na ilalarawanResultang susuriin
Paghahatid ng malaking fileSequential reads at sabay-sabay na clientPatuloy na throughput at paggamit ng CPU
Paghahanap ng talaanMaliliit na random reads at representatibong concurrencyDistribusyon ng latency at mga natapos na operasyon
Matibay na transaksyonMga kinakailangan sa write at synchronisationPagkaantala na may kaugnayan sa commit, hindi lamang bilis ng buffered write
Build o extractionPinaghalong maliliit na operasyon sa fileTagal ng end-to-end na job at I/O waits
03

Kontrolin ang caching nang hindi ipinagpapalagay na hindi ito mahalaga

Ang isang dataset na kasya sa memory ay maaaring sumukat lamang ng pag-uugali ng cache pagkatapos ng unang pass. Maaaring kapaki-pakinabang ito kung ang application ay karaniwang nakikinabang sa parehong cache, ngunit hindi ito dapat tawaging raw device performance. Sadyang piliin kung sinusuri ng pagsubok ang isang warm application path, isang mas malamig na dataset o isang I/O mode na naglalayong bawasan ang buffering effect ng operating system.

Ang suporta at alignment ng direct-I/O ay nakasalalay sa platform at engine. Hindi rin nito awtomatikong naipapahayag ang mga kinakailangan sa durability ng application o inaalis ang bawat cache sa stack. Ipahayag nang malinaw ang napiling mode, at iwasang ihambing ang isang buffered test sa isang unbuffered test na parang kumakatawan sila sa parehong gawain. Panatilihing hiwalay ang warm-up at mga sinusukat na agwat kung nakakatulong ito sa interpretasyon.

04

Basahin ang mga latency tail kasama ng throughput

Ang average latency ay maaaring magtago ng mabagal na operasyon na nakakaapekto sa tunay na mga kahilingan. Suriin ang iniulat na mga percentile at ang bilang ng mga sample sa likod ng mga ito. Ang isang mataas na percentile ay naglalarawan sa hangganan kung saan bumaba ang isang nakasaad na bahagi ng mga naobserbahang operasyon sa panahon ng pagsubok na iyon; hindi ito isang permanenteng garantiya ng serbisyo. Ang maikli o hindi representatibong mga run ay nagbibigay ng limitadong ebidensya tungkol sa abalang panahon ng produksyon.

Ang mas mataas na queue depth ay maaaring mapabuti ang natapos na throughput habang pinapataas ang oras ng paghihintay. Ang trade-off na iyon ay maaaring umangkop sa batch processing at makasama sa isang interactive na serbisyo. Ihambing ang mga resulta sa concurrency na kahawig ng application, at subaybayan ang CPU at I/O pressure nang sabay. Huminto bago ang pagsubok ay lumikha ng hindi kinakailangang pagkagambala para sa ibang workload na gumagamit ng parehong kapaligiran.

05

Panatilihing awtorisado at hindi nakakasira ang pagsubok

Gumamit ng nakalaang test directory o isang inihandang disposable volume, na may sapat na libreng espasyo at malinaw na plano sa paglilinis. Huwag kailanman itutok ang isang write benchmark sa isang hindi na-verify na raw device o production dataset. Suriin ang target at write behaviour ng tool bago magsimula, at magsimula sa isang limitadong run. Ang synthetic I/O ay maaaring kumonsumo ng kapasidad at makagambala sa mga serbisyo kahit hindi nito nao-overwrite ang mga kapaki-pakinabang na file.

Para sa isang production-like na pagsusuri, sumang-ayon sa isang maintenance window at panatilihin ang application monitoring. Gumamit ng fabricated data kung posible. Huwag ipahiwatig ang storage reliability mula sa isang speed test: ang mga integrity check, backup at restoration ay magkaibang gawain. Ang isang device na nakakumpleto ng benchmark ay nangangailangan pa rin ng recovery strategy para sa pagtanggal, mga pagkakamali sa software o pagkawala ng makina.

06

Isara ang loop gamit ang ebidensya mula sa application

Ipagpalagay na ang isang report service ay gumugugol ng malaking bahagi ng oras nito sa paghihintay ng random reads. Sinusubukan ng team ang isang representatibong read pattern, pagkatapos ay inuulit ang aktwal na report laban sa maihahambing na data. Kung bumubuti ang report habang nananatiling stable ang iba pang gawain nito, sinusuportahan ng resulta ang storage hypothesis. Kung hindi, imbestigahan ang query design, memory o ibang dependency sa halip na ulitin ang mas malawak na synthetic tests.

Ang Pulse NVMe at mga piling dedicated configuration ay naglilista ng NVMe storage sa SwissOctet catalogue. Ang kanilang mga label ay mga detalye, hindi mga na-publish na application benchmark. Gumamit ng kontroladong paraan upang suriin ang naihatid na kapaligiran at panatilihin ang mga kondisyon kasama ng mga natuklasan. Nagiging mas matibay ang desisyon kapag ang pagsukat ng storage at ang resulta na nakikita ng user ay sumasagot sa parehong tanong.

GAWIN ITONG AKSYON

Ang iyong praktikal na checklist.

  • Tukuyin muna ang tanong ng application.
  • Itala ang pattern, block size, concurrency at tagal.
  • Ipahayag ang mga pagpapalagay sa cache at I/O-mode.
  • Suriin ang mga latency percentile pati na rin ang throughput.
  • Gumamit ng na-verify na disposable target at limitadong paunang load.
  • Kumpirmahin ang natuklasan gamit ang isang pagsubok sa application.
MGA KARANIWANG TANONG

Ang mga detalyeng mahalaga.

Sapat na ba ang isang sequential copy upang ihambing ang database storage?+

Karaniwang hindi. Ang pag-access sa database ay maaaring may kasamang maliliit na random reads, writes at synchronisation. I-modelo ang kaugnay na pattern at i-verify ang aktwal na application.

Pinapatunayan ba ng direct I/O ang matibay na writes?+

Hindi. Ang buffering at durability ay magkaibang usapin. Itugma ang pag-uugali ng synchronisation na kinakailangan ng application.

Maaari ko bang i-publish ang isang pagsubok bilang garantisadong bilis ng plano?+

Hindi. I-publish ang mga kondisyon at saklaw nito. Ang sinusukat na resulta mula sa isang run ay hindi isang service-level o garantisadong performance sa hinaharap.

MGA PANGUNAHING SANGGUNIAN

Pumunta sa pinagmulan.

Sinusuportahan ng mga sangguniang ito ang mga teknikal na konsepto sa gabay na ito. Sundin ang kasalukuyang dokumentasyon bago baguhin ang isang production system.

  1. fio: Dokumentasyon ng flexible I/O tester fio.readthedocs.io
  2. NVM Express: Pangkalahatang-tanaw ng specification at FAQ nvmexpress.org
  3. Linux kernel: Pressure Stall Information docs.kernel.org

Editorial guidance ni SwissOctet. Ang mga halimbawa ay ilustratibo. Ang service specifications, available options at contractual conditions ay dapat beripikahin nang hiwalay.

IKONEKTA ANG KAALAMAN

Kaugnay na infrastructure.

PANATILIHIN ANG SINULID

Ang iyong susunod na field notes.

Tuklasin ang bawat gabay