اگر مدیریت یک شبکه سازمانی را بر عهده دارید، احتمالاً حداقل یک بار با افزایش ناگهانی CPU سوئیچ سیسکو مواجه شدهاید. بالا رفتن مصرف پردازنده در سوئیچهای Cisco یکی از مشکلات رایجی است که میتواند باعث کند شدن شبکه، افزایش تأخیر، از دست رفتن Packetها، اختلال در مدیریت سوئیچ و حتی قطع شدن برخی سرویسها شود.
نکته مهم این است که 100 درصد شدن CPU همیشه به معنی خرابی سوئیچ نیست. در بسیاری از مواقع این اتفاق به دلیل حجم بالای پردازش، تنظیمات اشتباه، حملات شبکه یا حتی اجرای برخی پروتکلها رخ میدهد. به همین دلیل، قبل از تعویض تجهیزات باید علت اصلی افزایش مصرف پردازنده را پیدا کرد. در این مقاله به صورت کامل بررسی میکنیم که چرا CPU سوئیچ سیسکو به 100 درصد میرسد، چگونه دلیل آن را پیدا کنیم و بهترین راهکارهای رفع این مشکل چیست.
CPU یا پردازنده مرکزی سوئیچ، مسئول انجام تمام پردازشهایی است که توسط سختافزار (ASIC) قابل انجام نیستند.
به طور کلی وظایف CPU شامل موارد زیر است:
در حالت عادی بیشتر ترافیک شبکه توسط ASIC پردازش میشود و فشار زیادی روی CPU وجود ندارد.
خیر. مصرف CPU بسته به شرایط شبکه متفاوت است. به طور معمول:
البته اگر CPU فقط چند ثانیه بالا برود جای نگرانی نیست. مشکل زمانی است که برای مدت طولانی روی اعداد بالا باقی بماند.
یکی از رایجترین دلایل افزایش مصرف CPU سوئیچ سیسکو، وقوع Broadcast Storm است. در این حالت تعداد بسیار زیادی Broadcast Packet در شبکه منتشر میشود و سوئیچ مجبور به پردازش حجم عظیمی از بستهها خواهد شد. دلایل ایجاد Broadcast Storm:
نشانهها:

Loop یکی از خطرناکترین مشکلات شبکه است. اگر پروتکل STP به درستی کار نکند یا غیرفعال باشد، بستهها دائماً بین سوئیچها گردش میکنند و CPU درگیر پردازش حجم زیادی از اطلاعات میشود. علائم Loop:
گاهی دلیل افزایش CPU سوئیچ سیسکو حملات داخلی یا خارجی است. مانند:
در این شرایط CPU باید تعداد بسیار زیادی Packet را پردازش کند.
اگر تعداد درخواستهای ARP بیش از حد افزایش پیدا کند، پردازنده سوئیچ درگیر پاسخگویی و مدیریت این درخواستها میشود. این مشکل معمولاً در شبکههایی دیده میشود که:
اجرای تعداد زیادی سرویس مدیریتی میتواند باعث افزایش مصرف CPU شود. برای مثال:
اگر همه این سرویسها به طور همزمان فعال باشند، فشار بیشتری به پردازنده وارد میشود.
در سوئیچهای لایه 3 مانند Catalyst 3850 یا Catalyst 9300، CPU علاوه بر Switching مسئول برخی پردازشهای Routing نیز هست. وجود موارد زیر میتواند مصرف پردازنده را افزایش دهد:
Access Listهای طولانی یا دارای تعداد زیادی Rule ممکن است باعث شوند بخشی از پردازش توسط CPU انجام شود. به خصوص اگر ACLها روی Interfaceهای پرترافیک اعمال شده باشند.
گاهی مشکل از خود CPU نیست. موارد زیر نیز میتوانند باعث افزایش مصرف پردازنده شوند:
برخی نسخههای IOS دارای Bug هستند. این باگها میتوانند باعث شوند CPU سوئیچ سیسکو بدون وجود ترافیک زیاد، مصرف غیرعادی داشته باشد. به همین دلیل همیشه توصیه میشود از نسخههای Stable استفاده شود.
گاهی ابزارهای مانیتورینگ مانند:
هر چند ثانیه تعداد زیادی درخواست SNMP ارسال میکنند. اگر تعداد Pollها زیاد باشد CPU افزایش پیدا میکند.
اولین قدم، مشاهده میزان مصرف پردازنده است. دستور معروف:
show processes cpu
این دستور میزان مصرف CPU را نمایش میدهد. برای مشاهده پردازشهایی که بیشترین مصرف را دارند:
show processes cpu sorted
این دستور کمک میکند پردازش پرمصرف را شناسایی کنید. برای مشاهده تاریخچه مصرف CPU:
show processes cpu history
این دستور نمودار مصرف پردازنده را نشان میدهد.
بعد از اجرای دستور:
show processes cpu sorted
نام Process مشخص میشود. برای مثال:
هر Process میتواند سرنخی از علت اصلی مشکل باشد. برای نمونه:
گاهی علت افزایش CPU سوئیچ سیسکو روی یکی از پورتها قرار دارد. دستور زیر وضعیت اینترفیسها را نمایش میدهد:
show interfaces
اگر تعداد Error یا Broadcast زیاد باشد، باید همان پورت بررسی شود.
برای بررسی عملکرد STP از دستور زیر استفاده کنید:
show spanning-tree
اگر تغییرات مکرر در وضعیت پورتها مشاهده شود، احتمال Loop زیاد است.
دستور زیر اطلاعات MAC را نمایش میدهد:
show mac address-table
اگر یک MAC بین چند پورت جابهجا شود، احتمال وجود Loop بسیار زیاد است.
یکی از بهترین منابع برای پیدا کردن علت افزایش CPU سوئیچ سیسکو، لاگهای سیستم هستند. دستور:
show logging
در بسیاری از مواقع پیامهایی مانند Loop، Interface Error یا STP Change در لاگ ثبت میشوند.
Storm Control باعث محدود شدن Broadcast، Multicast و Unknown Unicast میشود. این قابلیت از ایجاد Broadcast Storm جلوگیری میکند.
اگر کاربری سوئیچ دیگری را به پورت Access متصل کند، BPDU Guard از ایجاد Loop جلوگیری میکند.
برای پورتهایی که به کامپیوتر متصل هستند، فعال کردن PortFast باعث کاهش مشکلات STP خواهد شد.
Root Guard مانع تغییر Root Bridge توسط تجهیزات غیرمجاز میشود.
اگر مشکل ناشی از Bug باشد، ارتقای سیستم عامل معمولاً مشکل را برطرف میکند. قبل از ارتقا بهتر است Release Note نسخه جدید بررسی شود.
در صورت استفاده از نرمافزارهای مانیتورینگ:
اگر از برخی سرویسها استفاده نمیکنید، بهتر است آنها را غیرفعال کنید. مانند:
این کار باعث کاهش بار روی CPU خواهد شد.
گاهی تنها تعویض یک کابل شبکه، ماژول SFP یا کارت شبکه معیوب میتواند مشکل را برطرف کند.
QoS باعث میشود Packetهای مهم در اولویت پردازش قرار بگیرند و از اشباع شدن پردازنده جلوگیری شود.
در بسیاری از موارد خیر، اما اگر مصرف CPU سوئیچ سیسکو برای مدت طولانی روی 100 درصد باقی بماند، ممکن است مشکلات زیر ایجاد شوند:
به همین دلیل نباید بالا بودن CPU را نادیده گرفت، حتی اگر کاربران هنوز اختلال محسوسی احساس نکرده باشند.

پیشگیری همیشه سادهتر از عیبیابی در زمان بروز مشکل است. برای کاهش احتمال افزایش مصرف پردازنده، بهتر است بهصورت دورهای وضعیت سوئیچ را پایش کنید، از نسخههای پایدار IOS استفاده کنید، طراحی صحیح لایه دوم شبکه را رعایت کنید، قابلیتهایی مانند STP، BPDU Guard و Storm Control را فعال نگه دارید و لاگهای سیستم را بهطور منظم بررسی کنید. همچنین مانیتورینگ مداوم مصرف CPU و پهنای باند به شما کمک میکند قبل از تبدیل شدن یک مشکل کوچک به قطعی گسترده، آن را شناسایی و برطرف کنید.
بالا رفتن CPU سوئیچ سیسکو همیشه به معنای خرابی سختافزار نیست و در بسیاری از موارد به دلیل مشکلاتی مانند Broadcast Storm، Loop، حملات شبکه، اجرای پروتکلهای متعدد، Polling بیش از حد SNMP یا حتی باگهای سیستمعامل IOS رخ میدهد. با استفاده از دستورات عیبیابی مانند show processes cpu، show logging، show interfaces و show spanning-tree میتوان علت اصلی را شناسایی و برای رفع آن اقدام کرد.
اگر مدیر شبکه هستید، توصیه میشود مصرف CPU سوئیچ سیسکو را بهصورت دورهای بررسی کنید و با رعایت اصول طراحی شبکه، بهروزرسانی منظم سیستمعامل و فعالسازی قابلیتهای امنیتی، از بروز این مشکل جلوگیری کنید. این رویکرد علاوه بر افزایش پایداری شبکه، عملکرد تجهیزات Cisco را نیز در بلندمدت بهینه نگه میدارد.