এনএপিআই বনাম অভিযোজিত বাধা ts


12

উচ্চতর নেটওয়ার্কিং লোডের অধীনে বিঘ্নিত ওভারহেড প্রশমিত করতে নিম্নলিখিত দুটি প্রযুক্তি কীভাবে ব্যবহার করা যায় তা দয়া করে ব্যাখ্যা করতে পারেন?

  1. অভিযোজিত-আরএক্স / অভিযোজক-টিএক্স, এবং
  2. Näpi;

আমি একটি উত্তর প্রশংসা করব যা লিনাক্স কার্নেল উত্স স্তরের পার্থক্যটি ব্যাখ্যা করে? এছাড়াও আমি শুনতে চাই যে কীভাবে এনআইসিকে ভোট দেওয়ার জন্য চাপ দিতে হবে / লোডে কোয়েলেসিং মোডে বাধা দিতে হবে যা 400 এমবিপিএস।

আরও পটভূমি:

সমস্যাটি মনে হচ্ছে যে বিএনএক্স 2 এবং ই 1000 টি ড্রাইভার "এথটল-সি অ্যাডাপটিভ-আরএক্স অন" কমান্ডটিকে উপেক্ষা করে। এটি সম্ভবত কারণ কারণ ad ড্রাইভারগুলি অভিযোজক বাধা সমর্থন করে না। ব্রডকম প্রোগ্রামারের রেফারেন্স ম্যানুয়াল যাই হোক না কেন, এই বৈশিষ্ট্যটি বিসিএম 5709 এনআইসি হার্ডওয়্যার দ্বারা সমর্থিত হওয়া উচিত।

তাই আমি এনএপিআই চেষ্টা করার চেষ্টা করেছি এবং নেফিক_নাপি_এডিডি () ফাংশন কলের ওজন from৪ থেকে ১ reduce এ কমিয়ে এনআইসিকে পোলিং মোডে অনেক কম লোডের নীচে চাপিয়ে দেওয়ার জন্য বললাম, তবে দুর্ভাগ্যক্রমে এটি কার্যকর হয়নি। আমি অনুমান করি যে এনআইসি-তে NAPI- এর কোনও বিশেষ হার্ডওয়্যার সমর্থন প্রয়োজন নেই, এটি কি সঠিক?

আমি যে হার্ডওয়্যারটি ব্যবহার করছি তা হ'ল বিসিএম 5709 এনআইসি (এটি বিএনএক্স 2 ড্রাইভার ব্যবহার করে)। এবং ওএস হ'ল উবুন্টু 10.04। সিপিইউ XEON 5620।

উত্তর:


18

বিঘ্ন সংযত হওয়ার পিছনে মূল নীতিটি হ'ল প্রদত্ত ফ্রেম প্রতি একাধিক বিঘ্ন (বা ট্রান্সমিশন ফ্রেম সমাপ্তির জন্য একটি বিঘ্নিত) কমিয়ে আনা, যখন বাধা সার্ভিস করার সময় ওএস ওভারহেডের মুখোমুখি হয় reducing বিসিএম ৫70০৯ কন্ট্রোলার হ'ল হার্ডওয়্যারে বেশ কয়েকটি পদ্ধতির সমর্থন করে যাতে বাধা কোয়েলেস করার জন্য:

  • এক্স ফ্রেম প্রাপ্তির পরে একটি বাধা তৈরি করুন (ইথটোলে rx-ফ্রেম)
  • এক্স ইউজিকের পরে আর ফ্রেম না পেলে একটি বাধা তৈরি করুন (ইথটোলে rx-usecs)

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

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

যদি আপনার পূর্বাভাসযোগ্য কাজের চাপ থাকে তবে উপরের যে কোনও (এনএপিআই, আরএক্স-ফ্রেম, আরএক্স-ইউজিস) জন্য নির্দিষ্ট মান নির্বাচন করা যেতে পারে যা আপনাকে সঠিক বাণিজ্য-অফ দেয়, তবে বেশিরভাগ কাজের চাপ আলাদা হয় এবং আপনি কিছু ত্যাগ স্বীকার করে শেষ করেন। এটি যেখানে অভিযোজিত-আরএক্স / অভিযোজিত-টিএক্স খেলতে আসে। সেখানে ধারণাটি হ'ল ড্রাইভার ক্রমাগত কাজের চাপ (প্রতি সেকেন্ডে প্রাপ্ত ফ্রেম, ফ্রেম আকার ইত্যাদি) পর্যবেক্ষণ করে এবং কম ট্র্যাফিক পরিস্থিতিতে বিলম্বিত হওয়ার জন্য বা উচ্চ ট্র্যাফিক পরিস্থিতিতে থ্রুপুটটির জন্য অনুকূলকরণের জন্য হার্ডওয়্যার বিঘ্নিত কোলেসিং স্কিমটির সুর দেয়। এটি একটি দুর্দান্ত তত্ত্ব তবে বাস্তবে এটি প্রয়োগ করা কঠিন হতে পারে। কয়েক জন ড্রাইভারই এটি প্রয়োগ করে (দেখুন http://fxr.watson.org/fxr/search?v=linux-2.6&string=use_adaptive_rx_coalesce ) এবং bnx2 / e1000 ড্রাইভার সেই তালিকায় নেই।

প্রতিটি ইথিওল কোয়েলসিং ফিল্ড কীভাবে কাজ করার কথা রয়েছে তার একটি ভাল বিবরণের জন্য, নীচের ঠিকানায় এথটোল_কোলেসেস কাঠামোর সংজ্ঞাটি দেখুন:

http://fxr.watson.org/fxr/source/include/linux/ethtool.h?v=linux-2.6#L111

আপনার জন্য নির্দিষ্ট পরিস্থিতির জন্য (~ 400Mb / s থ্রুটপুট) আমি আপনার কাজের চাপের জন্য সেরা সেটিংসের জন্য আরএক্স-ফ্রেম এবং আরএক্স-ইউজিক মানগুলি টিউন করার পরামর্শ দিই। বিলম্ব হওয়ার জন্য আপনার অ্যাপ্লিকেশন (httpd? ইত্যাদি) এর সংবেদনশীলতার পাশাপাশি ISR এর ওভারহেড উভয়টি দেখুন।

ডেভ


1
আপনি বলেছিলেন যে " এনএপিআই বাস্তবায়নটি ট্র্যাফিকের গুচ্ছগুলিতে আসে তা কাজে লাগানোর চেষ্টা করে, যাতে আপনি প্রথম ফ্রেমে প্রাপ্ত তত্ক্ষণাত বাধা সৃষ্টি করেন , তারপরে আপনি অবিলম্বে ভোটদানের মোডে চলে যান "। তবে উইকিতে বলা হয়েছে যে এনএপিআই হার্ডওয়্যার বিঘ্ন কখনও কখনও ব্যবহার করে না, তবে প্রতি নির্দিষ্ট সময়ের জন্য পোল করে : এন.ইউইউইকিপিডিয়া.আর / উইকি / নিউ_এপিএই সঠিক উক্তি: "কার্নেলটি নিয়মিত বাধা না দিয়ে আগত নেটওয়ার্ক প্যাকেটগুলির আগমন পরীক্ষা করতে পারে can যা বিঘ্নিত প্রক্রিয়াজাতকরণের ওভারহেডকে সরিয়ে দেয় "" সত্য কোথায়?
অ্যালেক্স

1
@ অ্যালেক্স হার্ডওয়্যার বিঘ্নগুলি ট্রাফিক গ্রহণের জন্য কর্নেলকে অবহিত করতে অবশ্যই ব্যবহার করতে হবে। একটি "পুরানো শৈলী" বিঘ্নিত হ্যান্ডলার শিডিয়ুলস প্যাকেট প্রাপ্ত হয় তারপরে আবার বাধা পুনরায় সক্ষম করে। একটি এনএপিআই বিঘ্নিত হ্যান্ডলার বাধা নিষ্ক্রিয় করে, একটি পেলারকে সময়সূচী দেয় এবং বিঘ্ন পুনরায় সক্ষম করে। পলারের একটি নির্দিষ্ট পরিমাণের প্যাকেটের জন্য প্যাকেট প্রাপ্তি সম্পাদন করা হয়, এবং যতক্ষণ না ট্র্যাফিকের জন্য ট্র্যাফিক রয়েছে তা যতক্ষণ না চালক চালিয়ে যেতে থাকে, লক্ষ্য সর্বদা এনআইসিকে ট্র্যাফিকের মাধ্যমে টানা ট্র্যাফিকের মাধ্যমে হার্ড বাধা রোধ করা। ট্র্যাফিক যখন মারা যায়, তখন পলারটি প্রস্থান করে এবং সিস্টেমটি আবার কোনও বাধার জন্য অপেক্ষা করতে ফিরে যায়।
সুপ্রজামী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.