উইন্ডোজ দিয়ে প্রতি সেকেন্ডে কয়েক মিলিয়ন ডেটাগ্রাম প্রক্রিয়া করা সম্ভব?


11

আমি যদি উইন্ডোজে এমন কোনও এইচপিসি অ্যাপ্লিকেশন প্রয়োগ করতে পারি যা উচ্চ ইউনে ছোট ইউডিপি মাল্টিকাস্ট ডেটাগ্রামগুলি (বেশিরভাগ 100-400 বাইট) প্রাপ্ত করে, এক ডজন ব্যবহার করে বা 200 মিল্টিকাস্ট গ্রুপগুলি ব্যবহার করতে পারে (যেমন এমএসআই-এক্স এবং আরএসএস আমি ব্যবহার করতে পারি) একাধিক কোর স্কেল), প্যাকেট প্রতি কিছু প্রক্রিয়াজাতকরণ, এবং তারপর এটি প্রেরণ। টিসিপির মাধ্যমে প্রেরণ আমি কোনও প্রাচীর আঘাত না করে আমার যতটা প্রয়োজন (6.4 গিগাবাইট / সেকেন্ড) যেতে পেরেছি, তবে উচ্চ পিপিএস হারে ডেটাগ্রাম গ্রহণ করা একটি সমস্যা হয়ে দাঁড়িয়েছে।

একটি সাম্প্রতিক পরীক্ষা একটি 2-বন্দর 10Gb ইথারনেট উইন্ডোজ 2012 R2 হলো উপর এনআইসি সঙ্গে একটি উচ্চ বৈশিষ্ট ফলে NUMA মেশিনে, আমি শুধুমাত্র সক্ষম ছিল প্রতি সেকেন্ডে এর ফলে UDP datagrams কয়েক হাজার গ্রহণ করতে, আসলে ডেটা প্রক্রিয়াকরণের ছাড়া (গোড়ার দিকে ড্রপ, অর্থাত্ 2x12 কোর ব্যবহার করে এটি কীভাবে দ্রুত হয় তা সমীকরণ থেকে আমার অ্যাপ্লিকেশনটির প্রসেসিং ওভারহেডটি সরিয়ে ফেলুন এবং পরীক্ষা করা 12 মাল্টিকাস্ট গ্রুপগুলির কার্নেল অংশটি একটি NUMA নোডের 8 বা 10 কোরে বিতরণ করা হয়েছে বলে মনে হয়েছে ( সর্বাধিক আরএসএসের সারি নির্ধারণ করা হয়েছিল) 16) - একটি নেট নেট অ্যাপ্লিকেশন সহ, তাই নেটিভ অ্যাপ্লিকেশনগুলি দ্রুত যেতে সক্ষম হওয়া উচিত।

কিন্তু এমন কি লেন Holgate শুধুমাত্র 500kpps এ এর ফলে UDP প্যাকেটগুলি গ্রহণ করতে পরিচালিত মধ্যে তার উচ্চ ক্ষমতা সম্পন্ন উইন্ডোজ রিও পরীক্ষা , 1024 বাইটের একটি UDP পে লোড ব্যবহার করে।

ইন QLogic এর whitepaper (টেস্ট অধীনে ওএস উল্লেখ করা) এর জন্য সীমা এ সেট করা হয় (যাতে উভয় প্রাপ্তির এবং পরবর্তী পাঠানোর? অন্তর্ভুক্ত) "সুপার-ছোট প্যাকেট রাউটিং বহু-থ্রেডেড" 5.7Mpps । ইন নিবন্ধ উপর লিনাক্স নেটওয়ার্কিং , সীমা এ নির্ধারণ করা হয় 2Mpps করার 1Mpps (জানা স্কেলিং আপ বেশী বা কম সুসংগত) কোর প্রতি, অথবা এমনকি 15Mpps যে বাইপাস কার্নেল বিশেষ সমাধান সঙ্গে।

যেমন নেটম্যাপ

৯০০ মেগাহার্টজ চলমান একটি একক কোর সহ 10 জিগি লিঙ্কে লাইন রেটে ( 14.88Mpps ) ট্র্যাফিক তৈরি করতে পারে । এটি প্যাকেট প্রতি প্রায় 60-65 ক্লক চক্রের সমান এবং কোর এবং ক্লক ফ্রিকোয়েন্সি (4 কোরের সাথে লাইন রেট 450 মেগাহার্টজ এরও কম অর্জন করা হয়) দিয়ে ভালভাবে স্কেল করে। অনুরূপ হারগুলি গ্রহণের দিকে পৌঁছেছে

তাই আমি উইন্ডোজ / উইন্ডোজ সার্ভারের, বিশেষত ইউডিপি মাল্টিকাস্ট গ্রহণের ক্ষেত্রে অগ্রণী অনুচ্ছেদে বর্ণিতভাবে কতদূর নিতে পারি?

সম্পাদনা এখানে একটি ক্লাউডফ্লেয়ার ব্লগ পোস্ট রয়েছে - এবং একটি আকর্ষণীয় মন্তব্য বিভাগ - এটি লিনাক্সে কীভাবে করা যায় : প্রতি সেকেন্ডে মিলিয়ন প্যাকেট কীভাবে পাওয়া যায় , এবং সম্পর্কিত হ্যাকার সংবাদ মন্তব্য পৃষ্ঠা রয়েছে


@ রামহাউন্ড তত্ত্ব অনুসারে, উইন্ডোজে সম্ভবত এটি সম্ভব। তবে বাস্তবে এটি কীভাবে সম্ভব? এতক্ষণে আমি স্ট্যান্ডার্ড হার্ডওয়্যারটিতে লিনাক্সের এই স্তরগুলি অর্জনকারী লোকদের কাছ থেকে বেশ কয়েকটি প্রতিবেদন পেয়েছি, তবে উইন্ডোজে কোথাও একের কাছাকাছি আসেনি এমন একটিও নয়। এবং আপনি কীভাবে ভাবছেন যে আমি প্রশ্নের সুযোগ কমিয়ে আনতে পারি? এটি কেবল এটি: "উইন্ডোজে সর্বাধিক ইউডিপি মাল্টিকাস্টের হার কী?" আমার প্রশ্নের বেশিরভাগ পাঠ্যের কেবলমাত্র উদাহরণ যা লিনাক্স দিয়ে এটি সম্ভব তা দেখাতে হবে - এবং আমি নিজের হোমওয়ার্কটি করেছি done
ইউজিন বেরেসভস্কি

@ রামহাউন্ড 'উইন্ডোজে লিনাক্সে সম্ভব হলে এটি সম্ভব' আমি যথাক্রমে দ্বিমত পোষণ করি .. একটি সিস্টেম যা তাত্ক্ষণিকভাবে মনে আসে তা হ'ল iptables .. হ্যাঁ সৌভাগ্য যে উইন্ডোতে সেই সিস্টেমটির নকল করা। ^ _ ^
নিকক নিউম্যান

আমি আসলে সেই চেষ্টা করছিলাম না, তাই আমি যে রিও পরীক্ষার জন্য আমার কাছে যে কোডটি পেয়েছি তা সবসময় গ্রহণ করতে এবং ঠেলাঠেলি চালিয়ে যেতে পারে।
লেন হলগেট

উত্তর:


5

মাইক্রোসফট জানায়, তাদের ল্যাবে পরীক্ষা দেখিয়েছেন যে "প্রথম দিকে পরীক্ষামূলক মধ্যে একটি নির্দিষ্ট সার্ভারে" রিও , তারা সক্ষম হাতল ছিল

  • উইন্ডোজ সার্ভার 2008R2 এ 2Mpps ক্ষতি ছাড়াই, আরআইও ছাড়াই
  • 4Mpps অন (প্রাক রিলিজ) উইন্ডোজ সার্ভার 8 রিও ব্যবহার করে

ভিডিওটির স্ক্রিনশট (৪৪:৩৩):

এখানে চিত্র বর্ণনা লিখুন

সুতরাং আমার প্রশ্নের উত্তরটি হ'লIs it possible to process millions of datagrams per second with Windows? : হ্যাঁ , এবং দৃশ্যত এটি উইন্ডোজ সার্ভার ২০০৮আর 2 তে আরআইওর আগেও ছিল।

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

  1. পাঠানোর জন্য চিত্রগুলি হয়? প্রাপ্তির? অথবা রাউটিংয়ের জন্য (যেমন রিসিভ + প্রেরণ)?
  2. কোন প্যাকেটের আকার? -> সম্ভবত সবচেয়ে কম সম্ভব, সাধারণত পিপিএস পরিসংখ্যান নিয়ে বড়াই করার চেষ্টা করার সময় এটি করা হয়
  3. কত সংযোগ (যদি টিসিপি) / প্যাকেট স্ট্রিম (ইউডিপি হয়) ? -> সম্ভবত কাজের চাপটি বিতরণ করার জন্য যতগুলি প্রয়োজন তাই উপস্থিত সমস্ত কোর ব্যবহার করা যেতে পারে
  4. কি পরীক্ষা সেটআপ? মেশিন এবং এনআইসি চশমা এবং তারের

প্রথমটি অত্যন্ত গুরুত্বপূর্ণ, কারণ প্রেরণ ও গ্রহণের জন্য বিভিন্ন পদক্ষেপের প্রয়োজন হয় এবং পারফরম্যান্সে যথেষ্ট পার্থক্য দেখাতে পারে। অন্যান্য পরিসংখ্যানগুলির জন্য, আমরা সম্ভবত ধরে নিতে পারি যে কমপক্ষে কমপক্ষে একটি সংযোগ / প্যাকেট প্রবাহের মূল প্রতি কমপক্ষে সর্বনিম্ন প্যাকেটের আকার সর্বাধিক সম্ভাব্য এমপিএসের পরিসংখ্যান পাওয়ার জন্য একটি উচ্চ-মেশিনে ব্যবহৃত হচ্ছে।


সম্পাদনা আমি সবেমাত্র লিনাক্সে হাই পারফরম্যান্স প্যাকেট প্রসেসিংয়ের একটি ইন্টেল ডকুমেন্টকে হোঁচট খেয়েছি , এবং সেই অনুসারে, (লিনাক্স)

প্ল্যাটফর্ম প্রতি সেকেন্ডে প্রায় 2 এম লেনদেনের লেনদেনের হারকে ধরে রাখতে পারে

স্ট্যান্ডার্ড লিনাক্স নেটওয়ার্কিং স্ট্যাক (2x8 কোর সহ একটি প্রকৃত হোস্টে) ব্যবহার করে using এই অনুরোধ / উত্তর পরীক্ষার একটি লেনদেন উভয়ই অন্তর্ভুক্ত

  1. একটি ইউডিপি প্যাকেটের অভ্যর্থনা
  2. পরবর্তী প্যাকেটের ফরওয়ার্ডিং

(নেটপারফের নেটসারভার ব্যবহার করে)। সমান্তরালে পরীক্ষাটি 100 টি লেনদেন চলছিল। আগ্রহীদের জন্য কাগজে আরও অনেক বিবরণ রয়েছে। আমি চাই উইন্ডোজের তুলনা করার জন্য আমাদের এর মতো কিছু ছিল ... যাইহোক, সেই অনুরোধ / উত্তর পরীক্ষার জন্য এখানে সর্বাধিক প্রাসঙ্গিক চার্ট রয়েছে:

এখানে চিত্র বর্ণনা লিখুন


2

TL; ড

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

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


লেন হলগেট, যিনি গুগল অনুসারে একমাত্র তিনিই উইন্ডোজ নেটওয়ার্কিং (এবং ফলাফল প্রকাশ করেছেন) থেকে আরও পারফরম্যান্স পাওয়ার জন্য আরআইওর পরীক্ষা করেছেন, তিনি কেবল তার ব্লগে একটি মন্তব্যে পরিষ্কার করেছেন যে তিনি একটি আইপি / পোর্ট কম্বো ব্যবহার করছেন ইউডিপি প্যাকেট প্রেরণের জন্য।

অন্য কথায়, তার ফলাফলগুলি লিনাক্সের পরীক্ষাগুলিতে একক মূল পরিসংখ্যানের সাথে কিছুটা তুলনামূলক হওয়া উচিত (যদিও তিনি 8 টি থ্রেড ব্যবহার করছেন - যা তার কোডটি যাচাই না করেই কেবল একটি ইউডিপি প্যাকেট প্রবাহ পরিচালনা করার সময় পারফরম্যান্সের জন্য ক্ষতিকারক বলে মনে হয় এবং না প্যাকেটগুলির যে কোনও ভারী প্রক্রিয়াজাতকরণ করা হচ্ছে এবং তিনি উল্লেখ করেছেন যে কেবলমাত্র কয়েকটি থ্রেডই ব্যবহার করা হয়েছে, যার অর্থ হবে)। এটি তার বলা সত্ত্বেও:

পুরানো এবং নতুন এপিআইয়ের মধ্যে তুলনামূলক পারফরম্যান্সের তুলনা করার জন্য সর্বাধিক পারফরম্যান্স পাওয়ার জন্য আমি এতটা চেষ্টা করেছিলাম না এবং তাই আমার পরীক্ষায় আমি এতটা গভীর ছিলাম না।

তবে "কঠোর চেষ্টা" ব্যতীত আরও রুক্ষ আরআইও বিশ্বের জন্য মানক আইওসিপি-র (আপেক্ষিক) স্বাচ্ছন্দ্যের অঞ্চলটি কী ছেড়ে দিচ্ছেন ? কমপক্ষে একক ইউডিপি প্যাকেটের স্ট্রিমটিই উদ্বিগ্ন।

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

অন্য লিনাক্স / ইউনিক্স / বিএসডি পরীক্ষার সাথে তার ফলাফলগুলি সরাসরি তুলনা করার চেষ্টা করার পরে সমস্যাটি হ'ল: বেশিরভাগ পরীক্ষাগুলি, "প্রতি সেকেন্ডের প্যাকেটগুলি" সীমাতে ঠেলে দেওয়ার সময়, সবচেয়ে ছোট সম্ভাব্য প্যাকেট / ফ্রেমের আকার, অর্থাৎ একটি ইথারনেট ব্যবহার করে 64 বাইট ফ্রেম। লেন পরীক্ষিত 1024 বাইট প্যাকেট (-> একটি 1070 বাইট ফ্রেম), যা (বিশেষত নো-নাগল ইউডিপি) আপনাকে "সেকেন্ডে প্রতি বিটস" ফিগার পেতে পারে তবে পিপিএসের সীমানাটি ধাক্কা দিতে পারে না যতটা ছোট প্যাকেটের সাহায্যে পারে । সুতরাং এই পরিসংখ্যানগুলির যেমন হয় তেমনি তুলনা করা মোটেও ঠিক হবে না।

উইন্ডোজ ইউডিপিতে আমার অনুসন্ধানের ফলাফলগুলি সংক্ষেপ করে এখন পর্যন্ত পারফরম্যান্স পাবেন:

  • অতি লো-ল্যাটেন্সি এবং / অথবা উচ্চতর আউটপুট অ্যাপ্লিকেশনগুলি ডেভেলপ করার চেষ্টা করার সময় সত্যই কেউ উইন্ডোজ ব্যবহার করছে না, আজকাল তারা লিনাক্স ব্যবহার করছে
  • বাস্তবে সমস্ত কার্যকারিতা পরীক্ষা এবং প্রতিবেদনগুলির প্রকৃত ফলাফলের সাথে প্রতিবেদনগুলি (যেমন নিছক পণ্য বিজ্ঞাপন নয়) লিনাক্স বা বিএসডি-তে রয়েছে (অগ্রণী হওয়ার জন্য এবং লেনকে কমপক্ষে একটি রেফারেন্স দেওয়ার জন্য ধন্যবাদ লেনকে ধন্যবাদ!)
  • উইন্ডোজে ইউডিপি (স্ট্যান্ডার্ড সকেট) কি লিনাক্সের চেয়ে দ্রুত / ধীর? আমি এখনও বলতে পারি না, আমার নিজের পরীক্ষা করতে হবে
  • উইন্ডোজে লিনাক্সের চেয়ে উচ্চ / পারফরম্যান্স ইউডিপি (আরআইও বনাম নেটম্যাপ) কি দ্রুত / ধীর? লিনাক্স সহজেই 900MHz, উইন্ডোজে সিঙ্গেল কোর সহ পুরো 10 জিবি লাইন গতি পরিচালনা করে, সেরা প্রকাশিত ক্ষেত্রে 1024 আকারের একটি বড় ইউডিপি প্যাকেটের আকারে 43% বা 492kpps পর্যন্ত যেতে সক্ষম হয়, ছোট আকারের জন্য বিপিএসের চিত্রগুলি সম্ভবত উল্লেখযোগ্য হবে আরও খারাপ, যদিও পিপিএসের পরিসংখ্যানগুলি সম্ভবত উত্থিত হবে (যদি না বাধা হ্যান্ডলিং বা অন্য কোনও কার্নেল স্পেস ওভারহেড সীমিত ফ্যাক্টর হয়)।

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

অবশেষে, আমি লিনাক্সের জমিতে যা আবিষ্কার করেছি এবং যা চলছে তার কয়েকটি চরম উদাহরণ দেওয়ার জন্য:

ইতিমধ্যে 15 বছর আগে, কিছু 1 জিবিই এনআইসিতে 800 মেগাহার্টজ পেন্টিয়াম তৃতীয় সিপিইউ, 133 মেগাহার্টজ সামনের দিকে বাস ব্যবহার করে 680 কেপিপি পেতেছিল। সম্পাদনা : তারা ক্লিক , একটি কর্নেল-মোড রাউটার ব্যবহার করছিল যা স্ট্যান্ডার্ড নেটওয়ার্ক স্ট্যাকের অনেকাংশকে বাইপাস করে, অর্থাত্ তারা "প্রতারণা করেছে"।

2013 সালে, আরগন ডিজাইনটি পরিচালনা করতে সক্ষম হয়েছিল

35ns [ন্যানো সেকেন্ড] এর মতো কম বিলম্বকে বাণিজ্য করতে টিক দিন

বিটিডব্লিউও তারা দাবি করে

আজ ট্রেডিংয়ের জন্য প্রচলিত প্রচলিত কোডিং কোডটি x86 প্রসেসরের আর্কিটেকচারে লিনাক্সের জন্য রচিত।

এবং আরগন অ্যারিস্টা 7124FX স্যুইচটি ব্যবহার করে , এটিতে (একটি এফপিজিএ ছাড়াও) একটি ওএস রয়েছে

একটি স্ট্যান্ডার্ড লিনাক্স কার্নেলের উপরে নির্মিত।


0

আপনার অবশ্যই অবশ্যই বিভিন্ন কনফিগারেশন এবং পরিস্থিতিগুলি "পরিমাপ" করতে হবে। এটি 2 টি সংস্থার সরবরাহিত দুটি গিয়ার সহ এএফআইকে করা যায়। IXIA এবং স্পাইরেন্ট । তারা হার্ডওয়্যার ভিত্তিক ট্র্যাফিক জেনারেটরগুলিকে লাইনের গতিতে ট্র্যাফিক পাম্প করতে সক্ষম করে। তারা র‌্যাম্প পরীক্ষার প্রস্তাব দেয় যেখানে আপনি যে নির্দিষ্ট গতিতে আপনার নির্দিষ্ট সিস্টেমটি ভেঙে যেতে পারে তা সনাক্ত করতে পারেন। ডিভাইসগুলি ব্যয়বহুল তবে আপনি সেগুলি ভাড়া নিতে পারেন।

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