Дууны алдаа болон VPN-ийн завсарлага нэг л арван секундэд тохиолдож, нэг хэрэгсэл DPC саатал гэж тэмдэглэсэн өндөр тоог мэдээлдэг. Драйвер туннелийг удаашруулж байна, эсвэл туннель драйверт ачаалал өгч байна гэж дүгнэх уруу татагддаг. Энэ тооноос дээрх хоёр дүгнэлтийн аль нь ч гарахгүй.

Энд гурван хэмжилт оролцож байгаа бөгөөд тэд нэг хил хязгаарыг хуваалцдаггүй.

Гурван тоо, гурван хил

Хойшлуулсан процедурын дуудалт бол драйвер өөрийн тасалдал боловсруулагчаас хойшлуулдаг ажил бөгөөд тэдгээр горимын дотор өнгөрүүлсэн цаг нь процессорт локал хэмжилт бөгөөд модуль, функцэд хамааруулдаг. Цуурайн очих буцах зам нь сокет дахь цагийн ажиглалт бөгөөд сүлжээний стек болон алсын хариулагч үүсгэдэг. Салгах үйл явдал нь клиентийн бүртгэдэг төлөвийн шилжилт юм. Тус бүр нь бусад нь хариулж чадахгүй асуултад хариулдаг бөгөөд ижил нэгжүүд тэдгээрийг солилцох боломжгүй болгодог.

Ашигтай сахилга бол утгыг уншихаас өмнө хилийг нэрлэх явдал юм. Нэгж болон хилийг зэрэгцүүлэн бичээрэй. Хэрэв хэрэгсэл миллисекунд мэдээлбэл, юуны миллисекунд гэдгийг асуу: горимын доторх цаг, ажиллахыг хүлээх цаг, эсвэл хариу ирэх хүртэлх цаг.

Нэг ангилалд өндөр тоо нь сэжүүр, хэзээ ч онош биш.

Гарчгийн ард байгаа тодорхойлолтыг уншаарай

Хэрэгслүүд саатал гэж юу гэж нэрлэдэг талаараа ялгаатай. Зарим нь драйверын горимын үргэлжлэх хугацааг, зарим нь хуваарийн саатлыг мэдээлдэг бөгөөд эдгээр хоёр хэмжигдэхүүн нэг машинд эсрэг чиглэлд хөдөлж болно. Тэдгээрийн нэгийг зүгээр л DPC саатал гэж нэрлэдэг самбар танд харагдахаас бага мэдээлэл өгсөн. Тиймээс хоёр самбар огт өөрчлөгдөөгүй машины тухай санал зөрөх боломжтой.

Мөн адил болгоомжлол нь нэг шинжилгээний хэрэгслийн дотор ч үйлчилнэ. Бүрэн үргэлжлэх хугацаа горимыг орох цэгээс гарах хүртэл дагадаг бол онцгой үргэлжлэх хугацаа зөвхөн тухайн горим өөрөө ажиллаж байсан хэсгүүдийг нэмдэг. Буруу баганыг сонгох нь дуудагчийг гэмтэн болгоно.

Локал драйверын ажил болон сүлжээний саатал мөн нэгдэхгүйгээр харилцан үйлчилдэг. Хэт их тасалдалтай холбоотой үйл ажиллагаа машин дээрх цагт мэдрэмтгий ажлыг саатуулж болно, гацалттай зам пакетуудыг саатуулж болно, нэг харагдах завсарлагын үед хоёулаа үнэн байж болно.

Ажиглалт бүрийг нэг цонхонд хий

Мөр нь шинж тэмдгийг агуулсан интервалыг уншсан тохиолдолд л ашигтай. Мөр, клиентийн үйл явдал, програмын алдааг цагийн тэмдэглэгээтэйгээр бичээд, дараа нь гурвуулаас ижил секундуудыг хараарай. Нэг цагийн мөрийн дээд утга болон тэр өдрийн үдээс хойш болсон салалт нь хамааралгүй хоёр баримт юм.

wpr -start CPU -filemode
wpr -stop vpn-trace.etl
xperf -i vpn-trace.etl -a dpcisr -o dpc.txt

Дараа нь мөрийг шинжилгээний хэрэгсэлд нээж, бүх бичлэгээр биш харин тэр цонхны доторх үргэлжлэх хугацаагаар эрэмбэлээрэй. CPU шинжилгээний заавар нь цагийг модуль, функцэд хамааруулдаг DPC/ISR үргэлжлэх хугацааны харагдацыг тайлбарладаг.

Туннельд үнэндээ юу тохиолдсоныг баталгаажуул та тэнд байхдаа. Програмын урсгал түр алдагдах нь клиент шинэ хэлэлцээр эхлүүлсэн гэсэн үг биш бөгөөд жижиг туршилтын амжилт бусад бүхэн үргэлжлүүлэн ажиллаж байсныг нотлохгүй.

Баримт нотолгооны заасан компонентыг соль

Завгүй модуль бол шалгалтын газар, шийдвэр биш. Энэ нь өөр компонент эсвэл таны үүсгэсэн ачааллын улмаас үүссэн ажлыг хийж байж болно. Модулийн нэр, төхөөрөмж, драйверын хувилбар, ажигласан интервалыг хамт хадгаарай, учир нь нийлүүлэгч яг энэ багц дээр үйлдэл хийх боломжтой.

Туршилт бүрт нэг өөрчлөлт хийх нь үр дүнгээс суралцах цорын ганц арга юм. Утсаар хийсэн харьцуулалт хүрээг нарийсгадаг ч радио зам болон драйверын идэвхийг нэгэн зэрэг өөрчилдөг тул үүнийг нотолгоо биш, сэжүүр гэж үзээрэй.

Мөрийг мэдрэмтгий өгөгдөл гэж үзээрэй. Үүнд процессын нэр, орчны дэлгэрэнгүй мэдээлэл байж болох тул түүний байр нь дэмжигдсэн бичлэгийн суваг, олон нийтийн хавсралт биш. Мөр ямар ажиглалтад хариулах ёстой байсныг хэлээрэй.

Холбоотой нийтлэлүүд