هل وحدة معالجة بوابة VPN لديك محدودة؟ اقرأ أولاً الحمل لكل نواة
المتوسطات تخفي الخيط المهم. اقرأ الحمل لكل نواة مقابل نقل مُتحكَّم به، واستبعد المسار، ثم غيّر إعداداً موثقاً واحداً في كل تشغيل.
حدّد أيّ الحدود الثلاثة قد بلغته قبل أن تشتري نسخة أكبر. نواة واحدة مشغولة بالكامل بينما البقية عاطلة تشير إلى عمل تشفير لكل تدفق. وكل النوى مشبعة أثناء النقل تشير إلى سعة إجمالية. وانخفاض المعالج مع ارتفاع عدد إعادات الإرسال يشير إلى المسار. لكل حالة خطوة أولى مختلفة، وواحدة فقط منها تُحل بنسخة أكبر.
ثلاثة حدود، جدول واحد، ثلاثة حلول
| Limit | Reading during a transfer | First move |
|---|---|---|
| Single thread | one core near 100%, siblings idle | spread flows across workers |
| Aggregate CPU | every core busy, load average climbs | capacity, or less work per byte |
| Path or provider | low CPU, retransmits or steal time high | MTU, loss, host contention |
اقرأ الصفوف كتشخيصات لا كمراحل. خيط واحد عند 100% بينما البقية عاطلة هو النتيجة الأكثر شيوعاً على بوابة تحمل نفقاً كبيراً واحداً، لأن تشفير ذلك التدفق يعمل على نواة واحدة. انشغال جميع النوى أثناء النقل يعني أن الجهاز يبذل بالفعل أقصى ما يستطيع. انخفاض المعالج مع تزايد إعادات الإرسال يعني أن المعالج ينتظر شبكة تُسقط البيانات باستمرار.
أصلحها بهذا الترتيب من الأدلة. توزيع التدفقات على العمال يساعد الحالة الأولى ولا يفعل شيئاً للثانية. والنسخة الأكبر تساعد الثانية وتهدر المال على الأولى. وإصلاح MTU أو الفقد هو الوحيد الذي يمس الحالة الثالثة. شراء السعة قبل أن تعرف أي صف أنت فيه هو النسخة المكلفة من التخمين.
افصل الخيط المثبَّت عن المضيف المشغول
ابدأ باستخدام لكل نواة، حتى لا تختبئ نواة مثبتة داخل متوسط. تشغيل واحد أثناء النقل يُظهر ما إذا كان الحمل مستوياً أم متقطعاً. وكلا الشكلين مفيد، والملف المتقطع يعني غالباً أن نافذة القياس التقطت نشاط المجدول بدل التشفير.
mpstat -P ALL 1 5
انسب النواة المشغولة إلى عملية، ثم إلى خيط. التشغيل التالي يبقي خيوط الأب والابن معاً، وهذا مهم عندما يتفرع الخادم لكل اتصال:
pidstat -u -t -p $(pgrep -f 'openvpn|wireguard|ipsec') 1 10
التشفير في النواة لا يظهر أبداً في عدّاد عملية مساحة المستخدم. قِس الخيوط وحدها وقارن ذلك المنظر مع محاسبة العملية:
top -H -b -n 1 | head -20
اقرأ عدّادات المقابس أخيراً، لأنها تحدد ما إذا كانت زيادة المعالج ستفيد أصلاً. ارتفاع إعادات الإرسال مع ثبات المعالج ليس مشكلة معالج. أبقِ النقل جارياً أثناء القياس، وإلا وصفت الأرقام آلة عاطلة:
ss -ti | grep -E 'retrans|cwnd|rtt'
نقل مُتحكَّم به، يُنفَّذ مرتين
العدّادات العاطلة لا تثبت شيئاً، والقياس مقابل نقطة نهاية عشوائية يثبت القليل جداً. اختر عميلاً واحداً ووجهة واحدة ونقلاً تمثيلياً واحداً مسموحاً لك بتشغيله، ثم سجّل الإنتاجية والتأخير التفاعلي في النافذة نفسها. فقد تشبع البوابة بينما يكتمل نسخ كبير، ومنحنى التأخير هو ما يشعر به المستخدمون فعلاً. اكتب النقل وعدد العملاء وإصدار الخادم بجانب الأرقام.
أعد التشغيل مع عدة تدفقات متوازية. التزايد عبر التدفقات يوحي بتقسيم النافذة لكل تدفق؛ والثبات مع نواة واحدة مثبتة يوحي بالمعالجة.
ثم أعد مرة أخرى مع إيقاف الأحمال الاختيارية. نسخ احتياطي أو ناقل سجلات أو قاعدة بيانات على المضيف نفسه قد ينتج متوسطاً مشغولاً لا علاقة له بالأنفاق. إذا ظل المعالج مثبتاً والمضيف هادئ عدا ذلك، فالأدلة تشير إلى عملية VPN. وإذا انخفض، فكنت تقيس الجار، ولم تكن البوابة هي المشكلة أبداً.
استبعد المسار قبل شراء العتاد
ارتفاع إعادات الإرسال وتقلص نافذة الازدحام وزيادة زمن الذهاب والإياب كلها تشير بعيداً عن المعالج. قارن MTU النفق بـ MTU المسار، وافحص الرابط الأساسي بحثاً عن الفقد، وتأكد من أن وصلة العميل الصاعدة ليست الحد. البوابة الأكبر لا تصلح رابطاً يسقط الحزم، والمستخدمون يصفون العطلين بالكلمات نفسها. عدّاد إعادات الإرسال يفصل بينهما في دقائق.
على خادم افتراضي، أضف مقاييس المزود إلى مقاييس الضيف. وقت السرقة هو كيفية ظهور البيع الزائد داخل الضيف، ولا إعداد داخل الضيف يزيله. عدّادات الضيف لا ترى المضيف، فرسم بياني نظيف للضيف ليس دليلاً على مضيف سليم.
تغيير واحد، قياس واحد
اختر الفرضية التي تدعمها الأدلة، ثم غيّر إعداداً واحداً مدعوماً بالضبط: عدد العمال، أو خيار تفريغ موثق، أو حجم النسخة. تنشر OpenVPN دليلاً لاستكشاف أخطاء الأداء حول الفصل نفسه بين المعالجة والنقل: استكشاف أخطاء أداء OpenVPN.
تأكد من أن خيار التفريغ نشط فعلاً بدل الثقة بالعلم، ثم أعد النقل نفسه وقارن المثل بالمثل. فهذه الطريقة الوحيدة لتمييز تحسن حقيقي عن ظهيرة هادئة. احتفظ بنقطة استعادة يمكنك الرجوع إليها، لأن التغيير الثاني هو حيث يفقد الناس تتبع أيها ساعد. متغير واحد لكل تشغيل بطيء ليوم وسريع لشهر.
لا تضعف المصادقة أو حزمة التشفير لتجعل الرسم البياني يبدو أفضل. إذا ظل المعالج لا يتبع العَرَض، فعُد إلى فحص المسار والتطبيق بدل الترقية على تخمين.