VPN серверийн ачааллыг тайлбарлах нь: хэрэглэгчид, CPU эсвэл дээш суваг?
Бага ачааллын оноо нь сул хэрэглэгчид, чөлөөт CPU эсвэл өргөн дээш сувгийг илэрхийлж болно. Үүнийг хурдан гэж нэрлэхээс өмнө loadavg, интерфейсийн тоолуур, төлөвийн файлыг уншина уу.
0.4 ачаалалд байгаа гарц ард нь байгаа хэрэглэгч бүрд мөлхөж болно. Дундаж ачаалал нь ажиллуулж болох эсвэл тасралтгүй нойронд гацсан даалгавруудыг тоолдог бөгөөд дөрвөн цөмт хост дээр нэг ханасан процесс үүнийг 1.0 руу түлхэхэд хангалттай бөгөөд гурван цөм дэмий сууж байна. Энэ тоог нөөц гэж унших нь төгсгөлийн цэг сонгохдоо хамгийн түгээмэл алдаа юм. Туннелийг үнэхээр хязгаарладаг зүйл ихэвчлэн дөрвөн зүйлийн нэг: нэг завгүй цөм, дээш суваг, түүний өмнөх дараалал эсвэл хэн ч баримтжуулаагүй сессийн бодлого.
Дундаж ачаалал даалгаврыг тоолдог, дамжуулах чадварыг биш
Цөм нь гүйцэтгэлийн дараалал болон оролт-гаралтыг хүлээж буй даалгаврын тооноос дээж авч, дараа нь хоёуланг нь нэг, тав, арван таван минутад тэгшилнэ. Тэр тодорхойлолтод байт, пакет эсвэл туннелийн тухай юу ч дурдаагүй. Хадгалалт нь гацсан хост бараг трафикгүйгээр өндөр ачаалал мэдээлж болох бөгөөд цөмийн өгөгдлийн замаар гигабит түлхэж буй хост тав тухтай ачаалал мэдээлж болно.
Тиймээс ачааллыг туннелийн гүйцэтгэлтэй холбохын тулд цөм тус бүрийн харагдац хэрэгтэй. Нэг цөм дүүрсэн бол хяналтын самбар дээрх нийт хувь сайн харагдах хэвээр байна:
cat /proc/loadavg
mpstat -P ALL 1 1
top -H -b -n 1 | head -n 20
Гурав дахь команд нь VPN хост дээр хамгийн чухал нь. OpenVPN 2.x-д хэрэглэгчийн орон зайд пакет боловсруулах нь процесс тус бүрээр ихэвчлэн дараалсан байдаг тул нэг завгүй урсгал дээд хязгаар болж болох бөгөөд самбар нь элбэг чөлөөт хүчин чадал мэдээлнэ. Хэрэв таны удаан үед нэг урсгал цөмийн ихэнх хэсгийг эзэлдэг бол хост бүхэлдээ дутагдалтай биш; тэр санамсаргүйгээр чухал болсон хэмжээст хязгаарлагдсан байна.
Цаг хугацааг ч анхаарна уу. Арван таван минутын дундаж нь дуудлагыг сүйтгэсэн тэсрэлтийг нуудаг тул гомдлын дараа авсан дэлгэцийн зураг сул нотолгоо юм. Асуудлын үед дээж авч, гаралтын хамт цагийн тэмдэглэгээг хадгална уу.
Дээш суваг ба түүний өмнөх дараалал
Интерфейсийн тоолуур нь CPU-ийн тоо хариулж чадахгүй зурвасын өргөний асуултад хариулдаг. Тэд мөн хүчин чадлыг алдагдалаас ялгадаг бөгөөд эдгээр нь өөр шийдэлтэй өөр эвдрэлүүд юм:
ip -s link show dev eth0
tc -s qdisc show dev eth0
nstat -az TcpRetransSegs TcpExtTCPLostRetransmit
Туршилтын үед түүнд олгосон хурдтай ойролцоо байгаа холбоос нь тайлбар бөгөөд чөлөөт CPU-ийн ямар ч хэмжээ үүнийг өөрчлөхгүй. qdisc мөр нь интерактив трафикт чухал нарийн ширийнийг нэмдэг: хуримтлал ба хасалт нь пакетууд гарахаасаа өмнө дараалалд хүлээж байгаа эсэхийг хэлнэ. Том ачааллын дор дүүрдэг дараалал нь хүмүүсийн алслагдсан серверийг буруутгадаг шинж тэмдгийг яг үүсгэдэг, өөрөөр хэлбэл хэмжилтэд одоо ч сайн харагдах холболт дээр удаан дуудлагууд.
Дахин дамжуулалтын тоолуур нь пакетууд гарч байгаа боловч хэзээ ч цэвэр ирдэггүй тохиолдлыг барьдаг. Хэрэв удаан цонхонд дахин дамжуулалт өсч, интерфейс хүчин чадлаасаа хол байвал асуудал хост дээр биш замд байна, мөн ижил хотод өөр төгсгөлийн цэг рүү шилжих нь тус болохгүй.
Сессийн тоо эрэлтийг тодорхойлдог, нөөцийг биш
Нийтийн лавлах бүр холбогдсон хэрэглэгчдийн тодорхой тоог харуулдаг бөгөөд тэдгээрийн бараг нь тэр хэрэглэгчид юу хийж байгааг хэлдэггүй. Интерактив ажил хийж буй хорин сесс ба том файл татаж буй дөрвөн сесс нэг л техник хангамж дээр маш өөр ачаалал үүсгэдэг. Хоёр дахь загвар нь хэрэглэгчийн тоонд үл үзэгдэх бөгөөд яг тэр нь оройг сүйтгэдэг. Тиймээс сессийн тоог эрэлтийн сануулга гэж уншсан нь дээр, хэзээ ч чөлөөт хүчин чадлын тухай мэдэгдэл гэж биш.
| Number on the page | What it is really measuring | What it cannot tell you |
|---|---|---|
| Connected users | How many sessions hold an address | How much each one is transferring |
| Load or score | Whatever the operator chose to publish | Whether that definition matches your task |
| Uptime | How long since the process started | Current capacity, queue depth or packet loss |
| Distance or ping | Round-trip time on a small probe | Throughput under sustained transfer |
Таны удирддаг хост дээр төлөвийн файл дутуу хэмжээг өгдөг. OpenVPN нь үйлчлүүлэгч тус бүрийн байт тоолуурыг агуулсан үечилсэн агшин зураг бичдэг бөгөөд нэг сесс бүх дээш сувагт хариуцлагатай эсэхийг харахад энэ хангалттай:
status /run/openvpn/server.status 10
# then, after at least one interval
grep -E "^CLIENT_LIST" /run/openvpn/server.status
Арван секундын зайтай хоёр дээж тэдгээр хуримтлагдсан тоолуурыг үйлчлүүлэгч тус бүрийн хурд болгоно. Энэ бол хэрэглэгчийн тоо орлож байгаа хэмжилт бөгөөд буруу тохируулсан нэг үйлчлүүлэгч шөнө бүр ижил цагт холбоосыг ханасан болгодгийг ч ингэж олж мэднэ.
Сессийн хязгаарууд бодлогын дотор нуугддаг
Сервер сул зогсож байтал танд зурвасын өргөн өгөхөөс татгалзаж болно. Хурдны хязгаар, үйлчлүүлэгч тус бүрийн зурвасын өргөний дээд хэмжээ, трафикийн хэлбэржүүлэлт нь ихэвчлэн нийтлэг нэр эсвэл сангаар хэрэгжинэ, тиймээс нэг гарц дээрх хоёр хэрэглэгч огт өөр үр дүн авч болно. Механизм нь нарийн биш ч гаднаас үл үзэгдэх, учир нь туннель хоёр тохиолдолд хэвийн босдог.
Хэлбэржүүлэлтийг туннелийн интерфейсээс хай, физикээс биш. Хязгаар нь хэрэглэгч, гэрчилгээ эсвэл хаягийн санг дагаж байгаа эсэхийг шалга. Хэрэв таны туршилтын бүртгэл хязгааргүй санд орвол сервер хэвийн, гомдоллож буй хэрэглэгч буруу гэж дүгнэнэ. Ийм дүгнэлт нь дүгнэлтгүйгээс ч дор, учир нь тэр тасалбарыг хаадаг.
Нэг тогтмол даалгавраар хоёр төгсгөлийн цэгийг харьцуул
Үйлчлүүлэгчийн талын туршилтыг хийх нь одоо ч үнэ цэнэтэй, гэхдээ хувьсагчид тогтоосон үед л. Ижил төхөөрөмж, ижил хандалтын сүлжээ, ижил протокол, ижил очих файлыг ашиглаад, дараа нь ойролцоо зайтай хоёр дахь төгсгөлийн цэгийн эсрэг давтана. Гүйлтүүдийн хооронд өөрчлөгдөх бүхэн, тэр дундаа өдрийн цаг, үр дүнг бохирдуулна.
Алдааг амжилт шигээ болгоомжтой бүртгэ. Гурван төгсгөлийн цэг ажиллаж, нэг нь хугацаа хэтэрсэн цуврал дөрвөн хурдны тооноос илүү мэдээлэлтэй, учир нь тэр хүчин чадал биш зам эсвэл бодлогын асуудлыг заана. Тохиолдол бүрийг дор хаяж хоёр удаа ажиллуул; хуваалцсан сүлжээнд нэг удаан дээж юу ч нотлохгүй.
Эцэст нь, цуглуулсан тоонуудаа тэднийг дэмжиж буй мэдэгдэлтэйгээ хамт хадгал. "Энэ төгсгөлийн цэг нөгөө нь гацсан тэр цонхонд дамжуулалтыг гүйцэтгэсэн" гэдэг нь хамгаалах боломжтой, харин "энэ төгсгөлийн цэг илүү хурдан" гэдэг нь нүүр хуудасны оноогоор ялж чадахгүй маргаан руу урина. OpenVPN 2.6 гарын авлага нь төлөвийн файл болон хэлбэржүүлэлтийн сонголтыг баримтжуулдаг, хэрэв хост талд яг тодорхой заавар хэрэгтэй бол.