জুনিপার পিয়ারিং রাউটারের রাউটিং ইঞ্জিনে উচ্চ সিপিইউ লোড হওয়ার কারণ


20

সম্প্রতি আমাদের দুটি জুনিপার পিয়ারিং রাউটারের রাউটিং ইঞ্জিন সিপিইউ ব্যবহারটি 10% থেকে 20% গড় লোড থেকে বেড়ে 80 +% হয়েছে। আমি এর কারণ কী হবে তা সনাক্ত করার চেষ্টা করছি (এবং কীভাবে এই উচ্চ লোডটি আবার নামা যায়)।

রাউটারগুলিতে কিছু তথ্য: উভয়ই একই জুনোস সংস্করণ চালায়, উভয়ই একই দুটি পিয়ারিং আইএক্সপি ল্যানের সাথে সংযুক্ত এবং তাদের (প্রায় অভিন্ন) আইপিভি 4 এবং আইপিভি 6 সেশনগুলির একটি বৃহত সংখ্যক (কয়েক শতাধিক) রয়েছে। উভয় রাউটারেরই আলাদা আইপি ট্রানজিট সরবরাহকারীর সংযোগ রয়েছে এবং আমাদের নেটওয়ার্কের বাকি অংশে একইভাবে সংযুক্ত রয়েছে। রাউটিং ইঞ্জিনগুলির সিপিইউ লোড 80 +% এ ফ্ল্যাটলাইন নয়, কয়েক মিনিট কয়েক ঘন্টা ধরে স্বাভাবিক স্তরে ফিরে আসে, তবে এই ড্রপগুলি প্রায়শই হয় না।

যে জিনিসগুলি আমি যাচাই করেছি:

  • বৃদ্ধি শুরু হওয়ার মুহুর্তে কোনও কনফিগারেশন পরিবর্তন করা হয়নি
  • নিয়ন্ত্রণ বিমানে নির্দেশিত অ-ইউনিকাস্ট ট্র্যাফিকের কোনও বৃদ্ধি নেই
  • ফরোয়ার্ড করা ট্র্যাফিকের পরিমাণে কোনও (যথেষ্ট পরিমাণে) পরিবর্তন নেই (যদিও বাড়ানো কোনও ব্যাপারই নয়)
  • show system processes summaryrpdপ্রক্রিয়া উচ্চ সিপিইউ লোড ঘটায় তা নির্দেশ করে
  • বিপুল পরিমাণ বিজিপি পরিবর্তন ঘটাতে খুব দ্রুত বিজিপি পিয়ারগুলি নেই

আমি যে সম্ভাব্য ব্যাখ্যাটি সামনে আসতে পারি তা হ'ল আইএক্সপির উভয় রাউটারগুলির মধ্যে একটি পিয়ার (বা একের বেশি) বিপুল সংখ্যক বিজিপি আপডেট প্রেরণের সাথে সংযুক্ত। বর্তমানে আমার কাছে আমার ট্রানজিট সেশনের বিজিপি বার্তাগুলির সংখ্যার পরিসংখ্যান রয়েছে (কোনও অস্বাভাবিক ক্রিয়াকলাপ দেখানো হচ্ছে না) এবং পিয়ারিং ল্যানগুলিতে কয়েক'শ শত বিজিপি সেশন দিয়ে সমস্যার সেশন (গুলি) খুঁজে পাওয়া এত সহজ নয় যদি আমার গ্রাফ তৈরি করা উচিত সমস্ত সেশন।

আমার প্রশ্নগুলি হ'ল:

  • রাউটিং ইঞ্জিনগুলিতে সিপিইউ লোডের এই বৃদ্ধির কারণ অনুসন্ধান করার জন্য আমার অন্য কোনও জিনিস যাচাই করা উচিত?
  • কীভাবে সেশনগুলি এই সমস্যাগুলি ঘটাচ্ছে তা আমি সহজেই জানতে পারি (যদি আমার ধারণাটি সঠিক হয়) বিজিপি ট্রেসোপশনগুলি সক্ষম করা বিপুল পরিমাণে ডেটা উত্পন্ন করে তবে আমি নিশ্চিত নই যে এটি আমাকে কোনও বাস্তব অন্তর্দৃষ্টি দেয় কিনা gives

উত্তর:


17

জুনিপার নলেজ সেন্টারে আপনার জন্য কিছু সহায়ক তথ্য থাকতে পারে ।

যদি আরপিডি উচ্চ সিপিইউ গ্রহণ করছে, তবে নিম্নলিখিত চেকগুলি সম্পাদন করুন এবং নীচের প্যারামিটারগুলি যাচাই করুন:

  • ইন্টারফেসগুলি পরীক্ষা করুন: রাউটারটিতে কোনও ইন্টারফেস ফ্ল্যাপ করছে কিনা তা পরীক্ষা করুন। শো-লগ বার্তা এবং শো ইন্টারফেস ge-x / y / z বিস্তৃত কমান্ডের আউটপুট দেখে এটি যাচাই করা যেতে পারে। তারা ফ্ল্যাপ করছে কেন সমস্যা সমাধান করুন; সম্ভব হলে আপনি লিঙ্ক আপের জন্য হোল্ড-টাইম সক্ষম করার বিষয়টি বিবেচনা করতে পারেন এবং লিংক ডাউন করতে পারেন।

  • ইন্টারফেস বা কোনও এফপিসি / পিআইসি সম্পর্কিত সিসলগ ত্রুটি বার্তা আছে কিনা তা পরীক্ষা করে দেখুন লগ বার্তাগুলির প্রদর্শন দেখুন।

  • রুটগুলি চেক করুন: শো রুটের সারাংশের আউটপুট দেখে রাউটার দ্বারা শিখানো মোট রুটের সংখ্যা যাচাই করুন। এটি সর্বাধিক সীমাতে পৌঁছেছে কিনা তা পরীক্ষা করে দেখুন।

  • আরপিডি কার্যগুলি পরীক্ষা করুন: প্রক্রিয়াটি কী ব্যস্ত রাখছে তা সনাক্ত করুন। এটি প্রথম সেট টাস্ক অ্যাকাউন্টিং সক্ষম করে পরীক্ষা করা যেতে পারে। গুরুত্বপূর্ণ: এটি নিজেই সিপিইউ এবং এর ব্যবহারের উপর চাপ বাড়িয়ে দিতে পারে; সুতরাং আপনার প্রয়োজনীয় আউটপুট সংগ্রহ সম্পন্ন হলে এটি বন্ধ করতে ভুলবেন না। তারপরে শো টাস্ক অ্যাকাউন্টিং চালান এবং উচ্চ সিপিইউ সময় সহ থ্রেডটি সন্ধান করুন:

    user@router> show task accounting
    Task                       Started    User Time  System Time  Longest Run
    Scheduler                   146051        1.085        0.090        0.000
    Memory                           1        0.000            0        0.000  <omit>
    BGP.128.0.0.4+179              268       13.975        0.087        0.328
    BGP.0.0.0.0+179      18375163 1w5d 23:16:57.823    48:52.877        0.142
    BGP RT Background              134        8.826        0.023        0.099
    

কোনও থ্রেড, যা একটি নির্দিষ্ট উপসর্গ বা প্রোটোকলের সাথে সম্পর্কিত, উচ্চ সিপিইউ নিচ্ছে কেন তা সন্ধান করুন।

  • শেল কমান্ডের আউটপুট দেখে আপনি রুটগুলি দোলনা (বা রুট মন্থন) করছে কিনা তাও যাচাই করতে পারবেন: %rtsockmon –t

  • আরপিডি মেমোরি পরীক্ষা করুন। কিছু সময় উচ্চ মেমরির ব্যবহার অপ্রত্যক্ষভাবে উচ্চ সিপিইউ বাড়ে।


1
আরপিডি কিছুটা বিরক্তিকর ব্ল্যাকবক্স। দুর্দান্ত পরামর্শগুলির উপরে rtsockmon -t এবং টাস্ক অ্যাকাউন্ট দেখান, আমি সম্ভাব্য উপকারী সরঞ্জাম হিসাবে 'শো কেআরটি কিউ' যুক্ত করতে চাই।
ytti

কেআরটি কিউ প্রদর্শন করে আপনাকে যে কোনও রুট আপডেটগুলি ডেটা প্লেনের নিয়ন্ত্রণ হিসাবে দেখায়। আপনার বেশিরভাগ সময় সারিবদ্ধ কিছু দেখতে পাওয়া উচিত নয়। যখন কোনও ফ্ল্যাপ ঘটে তখন এটি বেশ কিছু সময়ের জন্য সারিবদ্ধ থাকতে পারে
মেলোড করুন

PR836197 এর কারণে এটি আক্ষরিক অর্থে কয়েক ঘন্টা হতে পারে :(
ytti

এই পয়েন্টগুলির কয়েকটি উল্লেখ করার জন্য খুব স্পষ্ট ছিল (ফ্ল্যাপিং ইন্টারফেস, লগগুলিতে ত্রুটি), তবে rtsockmon এবং টাস্ক অ্যাকাউন্টিংয়ের পরামর্শগুলি অন্তর্দৃষ্টিযুক্ত ছিল। দেখে মনে হচ্ছে অনেকগুলি সিপিইউ চক্র এসএনএমপির জন্য ব্যবহৃত হয়, তাই পরবর্তীটি কী রাউটারগুলি এবং সরঞ্জামগুলি এই রাউটারগুলিতে ভোট দিচ্ছে তা নির্ধারণ করছে।
টিউন ভিঙ্ক

1
দুঃখিত যদি তারা খুব সুস্পষ্ট হয় তবে আমি একটি সমর্থন পটভূমি থেকে এসেছি যেখানে কোনও ব্যবহারকারীকে এটির প্লাগ ইন করা আছে কিনা তা পরীক্ষা করতে পাওয়া কোনও ঝামেলা ছিল!
আর্টানিক্স

2

আমি জানি এই থ্রেডটি পুরানো তবে সম্পূর্ণতার জন্য:

যদি উচ্চ সিপিইউ এলোমেলোভাবে ঘটে এবং আপনি প্রক্রিয়াটি নির্ধারণ করতে সক্ষম না হন যার কারণে আমরা নীচের স্ক্রিপ্টটি তৈরি করতে পারি।

এই স্ক্রিপ্টের সাহায্যে আমরা প্রক্রিয়াটি ব্যাপকভাবে ক্যাপচার করতে যাচ্ছি যখন কোনও প্রক্রিয়া স্বাভাবিক বা প্রত্যাশিত প্রান্তিকের চেয়ে বেশি উত্থাপন করে, এটি কোনও ট্রাফিক বাধাগ্রস্ত করবে না তবে একটি মেগাওয়াট এখনও প্রস্তাবিত। তবে আমি দেখতে পাচ্ছি আপনি এটিকে আরপিডি হিসাবে সংকীর্ণ করেছেন।

snmp {
    health-monitor {
        interval 30;
        rising-threshold 60;
        falling-threshold 50;
    }
}

event-options {
    policy MONITOR-CPU {
        events snmpd_health_mon_thresh_cross;
        attributes-match {
            snmpd_health_mon_thresh_cross.event-name matches "Health Monitor.+CPU.+rising";
        }
        then {
            execute-commands {
                commands {
                    "show system processes extensive";
                }
                output-filename cpu-processes;
                destination local-flash;
                output-format text;
            }
        }                               
    }
    destinations {
        local-flash {
            archive-sites {
                /var/tmp;
            }
        }
    }
}

প্রদর্শন সেট আউটপুট>

set snmp health-monitor interval 30
set snmp health-monitor rising-threshold 60
set snmp health-monitor falling-threshold 50
set event-options policy MONITOR-CPU events snmpd_health_mon_thresh_cross
set event-options policy MONITOR-CPU attributes-match snmpd_health_mon_thresh_cross.event-name matches "Health Monitor.+CPU.+rising"
set event-options policy MONITOR-CPU then execute-commands commands "show system processes extensive"
set event-options policy MONITOR-CPU then execute-commands output-filename cpu-processes
set event-options policy MONITOR-CPU then execute-commands destination local-flash
set event-options policy MONITOR-CPU then execute-commands output-format text
set event-options destinations local-flash archive-sites /var/tmp

এছাড়াও আপনি পরীক্ষা করেছেন যে কোনও ডিডোস বার্তা রিপোর্ট করা হয়েছে? আপনি নিম্নলিখিত কমান্ডগুলি চালাতে পারেন:

show ddos-protection protocols statistics brief
show ddos-protection statistics
show ddos-protection version

তারপরে আপনি যা দেখছেন তার উপর নির্ভর করে এটি সংকীর্ণ করা যেতে পারে:

show ddos-protection protocols ttl statistics
show ddos-protection protocols ttl violations
show ddos-protection protocols ttl flow-detection detail  */*this cm needs prior config*/*

জুনিপারের এই ধরণের ইস্যুগুলির KB22637 এর আওতায় সংগ্রহের তালিকাও রয়েছে

হাই সিপিইউ সি এল আই কমান্ডস

set cli timestamp
show chassis routing-engine (multiple snapshots, atleast 5)
show system processes extensive (multiple snapshots atleast 5)
show system users
show system connections
show system statistics

টাস্ক অ্যাকাউন্টিং চালু করুন এবং টাস্ক অ্যাকাউন্টিংয়ের বিশদ আউটপুট সংগ্রহ করুন (30 সেকেন্ডের ব্যবধানের সাথে তিনবার)। শেষ হওয়ার পরে এটি বন্ধ করতে ভুলবেন না।

set task accounting on 
show task accounting detail
set task accounting off

show task memory detail
show task memeory summary
show task io
show task history
show task statistics
show task job
show task jobs
show krt queue
show krt state

লগ

ট্রেসোপশনগুলির উপরের 1 ধাপে উল্লিখিত হিসাবে সংরক্ষণাগার / ভার / লগ

user@router# show routing-options 
traceoptions { 
file routing-trace size 10m files 20 world-readable; 
flag task; 
flag state; 
flag timer; 
}

এছাড়াও আপনি যদি কোনও পুরানো সংস্করণ চালাচ্ছেন যা বাগের জন্য প্রবণ হয়ে থাকে তবে আপনি কোডটির লাইফ সাপোর্টটি পরীক্ষা করতে চাইতে পারেন:

http://www.juniper.net/support/eol/junos.html

কোন ভেক্টর আক্রমণ হতে পারে তা উল্লেখ করার অন্য একটি বিষয়টি আপনার আর অযাচিত ব্যতিক্রম ট্র্যাফিক থেকে রক্ষা করে নি। লুপব্যাকের নীচে আপনার কাছে ফায়ারওয়াল ফিল্টার রয়েছে তা নিশ্চিত করুন।

আমি রাউটারের পূর্বের স্ক্রিপ্টগুলিতে দেখেছি যে উচ্চ সিপিইউর কারণটি নিশ্চিত হয় না যে আরপিডি আমার দৃষ্টিতে আসে কিনা তবে এটি এমন কিছু যা আপনি উপেক্ষা করতে চাইবেন না।

আপনি যদি লগগুলিতে দেখতে পান RPD_MPLS_PATH_BANDWIDTH_CHANGE এর সাথে অনেকগুলি হিট আপনি খুব আক্রমণাত্মক সামঞ্জস্য-বিরতি ব্যবহার করছেন

"সিস্টেম সারি দেখান" তে কোনও ড্রপ পরীক্ষা করে দেখুন: এটি কার্নেলের সারি, কিছু ক্লু উপস্থিত হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.