TGViewer
TKC TKC @things_to_know_channel · 830 subscribers
Post #442 375
#network_time

‏🚀 چطور ترافیک بالا CPU رو از پا در نمی‌آره؟

‏تا حالا شده فکر کنی وقتی یه فایل خیلی حجیم رو توی شبکه می‌فرستی، CPU باید تک‌تک اون packetهای ریز رو آماده کنه و Headerهاشون رو بسازه؟ اگه این‌طوری بود، با بالا رفتن سرعت شبکه، مصرف CPU به شدت بالا می‌رفت. برای حل این مشکل از مکانیزم‌های offload مثل TSO، GSO و GRO استفاده می‌کنیم که وظیفه segmentation رو از دوش CPU برمی‌دارن.

‏نکته اصلی اینجاست که در حالت عادی، kernel باید یه payload بزرگ رو بر اساس MTU به قطعات کوچیک‌تر تقسیم کنه و برای هر کدوم checksum و header جداگانه محاسبه کنه. اما با TSO، kernel یه packet خیلی بزرگ رو با یه Header اولیه به NIC می‌سپره و خودِ سخت‌افزار کارت شبکه وظیفه داره اون رو به segmentهای کوچیک‌تر تقسیم کنه و Headerهای جدید رو اضافه کنه. اگه کارت شبکه از این قابلیت پشتیبانی نکنه، GSO توی خودِ kernel این کار رو با کمترین هزینه انجام می‌ده تا تقسیم‌بندی رو تا آخرین لحظه عقب بندازه. از اون طرف، وقتی داده‌ها می‌رسن، GRO برعکس عمل می‌کنه؛ یعنی چند تا packet کوچیک که مال یه flow هستن رو با هم ترکیب می‌کنه تا kernel مجبور نباشه برای هر کدوم جداگانه پردازش انجام بده.

‏نتیجه‌ش اینه که تعداد interruptهایی که به CPU می‌رسه خیلی کم می‌شه و پردازش network stack خیلی سریع‌تر انجام می‌شه. اگه بخوای وضعیت این قابلیت‌ها رو بررسی کنی، می‌تونی از ابزارهای مربوط به تنظیمات کارت شبکه استفاده کنی، چون توی سرورهای پرسرعت، مدیریت درست این offloadها برای حفظ performance خیلی حیاتیه.

‏❓ تا حالا شده با فعال بودن این offloadها توی شبکه به مشکل بخورین یا مثلا با غیرفعال کردنشون عملکرد سیستم رو بهتر کنین؟ تجربه‌تون رو برامون تو کامنتا بنویسین

@things_to_know_channel
  • ❤ 4
  • 👍 1
  • 🔥 1
  • 👏 1
More from @things_to_know_channel
  1. Oct 3, 2026#network_time ‏🌐 چرا یه سرور شلوغ یهو نمی‌تونه connection جدید برقرار کنه؟ ‏تا حا…
  2. Oct 2, 2026#network_time ‏🧐 وقتی می‌دونیم IP طرف چیه، سیستم چطور می‌فهمه باید packet رو دقیقاً ب…
  3. Oct 1, 2026#linux_time ‏🤝 چطور میشه روی یه راز مشترک توافق کرد، وقتی همه دارن گوش می‌دن؟ ‏تا…
  4. Sep 24, 2026#linux_time ‏💿 dd — کپی سطح پایین دیسک ‏در ادامه چند تا مثال کاربردی ازش میبینیم:…
  5. Sep 23, 2026#linux_time ‏🤝 دو تا سیستم چطور توافق می‌کنن که ترتیب packetها رو گم نکنن؟ ‏تا حا…
  6. Sep 22, 2026📌 systemctl Cheat Sheet اگر با Linux Server و DevOps سر و کار دارید، systemctl یکی از دست…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →