টিসিপি কেন জেনের অধীনে () পারফরম্যান্স এত খারাপ?


89

আমার সার্ভার যে হারে () নতুন আগত টিসিপি সংযোগগুলি গ্রহণ করতে পারে তা জেনের অধীনে সত্যিই খারাপ। খালি ধাতব হার্ডওয়্যার একই পরীক্ষা 3-5x গতি আপ দেখায়।

  1. কেন এই জেন অধীনে এত খারাপ হয়?
  2. নতুন টিসিপি সংযোগগুলির জন্য পারফরম্যান্সের উন্নতি করতে আপনি জেনকে টুইট করতে পারেন?
  3. এই জাতীয় ব্যবহারের ক্ষেত্রে অন্যান্য ভার্চুয়ালাইজেশন প্ল্যাটফর্মগুলি কি আরও উপযুক্ত?

পটভূমি

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

সার্ভারে নৌকা বোঝাই ট্র্যাফিক প্রেরণ করার পরেও, এটি প্রতি সেকেন্ডে 000 7000 টিসিপি সংযোগগুলি গ্রহণ করতে পারে না (8-কোর ইসি 2 উদাহরণে, সি 1. এক্স্লারেজ চলমান জেন)। পরীক্ষার সময়, সার্ভারটিও একটি অদ্ভুত আচরণ প্রদর্শন করে যেখানে একটি কোর (অগত্যা সিপিইউ 0 নয়) খুব লোড হয়> 80%, অন্য কোরগুলি প্রায় অলস থাকে। এটি আমাকে ভাবতে পরিচালিত করে যে সমস্যাটি কার্নেল / অন্তর্নিহিত ভার্চুয়ালাইজেশনের সাথে সম্পর্কিত।

খালি ধাতুতে একই দৃশ্যের পরীক্ষা করার সময়, নন-ভার্চুয়ালাইজড প্ল্যাটফর্মে আমি পরীক্ষার ফলাফল পেয়ে দেখি যে টিসিপি 35 000 / সেকেন্ডেরও বেশি হারে গ্রহণ করবে () accept এটি একটি কোর আই 5 4 মূল মেশিনে উবুন্টু চলমান সমস্ত কোরগুলির সাথে প্রায় সম্পূর্ণ সম্পৃক্ত। আমার কাছে সেই ধরণের চিত্র ঠিক মনে হয়।

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

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

  1. আসলেই কি জেনের এই প্রত্যাশিত আচরণ?
  2. নতুন টিসিপি সংযোগগুলির জন্য পারফরম্যান্সের উন্নতি করতে আপনি জেনকে টুইট করতে পারেন?
  3. এই জাতীয় ব্যবহারের ক্ষেত্রে অন্যান্য ভার্চুয়ালাইজেশন প্ল্যাটফর্মগুলি কি আরও উপযুক্ত?

এই আচরণ পুনরুত্পাদন

এটিকে আরও তদন্ত করার সময় এবং সমস্যাটিকে চিহ্নিত করার সময় আমি জানতে পারি যে নেটপার্ফ পারফরম্যান্স পরীক্ষার সরঞ্জামটি আমি যে একইরকম দৃশ্যের মুখোমুখি হচ্ছি তা অনুকরণ করতে পারে। নেট্পারফের টিসিপি_সিআরআর পরীক্ষাটি ব্যবহার করে আমি বিভিন্ন সার্ভার থেকে বিভিন্ন প্রতিবেদন সংগ্রহ করেছি (উভয় ভার্চুয়ালাইজড এবং অ-গুণ)। আপনি যদি কিছু অনুসন্ধানে অবদান রাখতে চান বা আমার বর্তমান প্রতিবেদনগুলি সন্ধান করতে চান তবে দয়া করে https://gist.github.com/985475 দেখুন

আমি কীভাবে জানব যে সমস্যাটি খারাপভাবে লেখা সফ্টওয়্যারটির কারণে নয়?

  1. সার্ভারটি বেয়ার মেটাল হার্ডওয়ারে পরীক্ষা করা হয়েছে এবং এটি এর জন্য উপলব্ধ সমস্ত কোরকে প্রায় সম্পৃক্ত করে।
  2. টিভি-লাইভ টিসিপি সংযোগগুলি ব্যবহার করার সময়, সমস্যাটি চলে যায়।

এটা জরুরী কেন?

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


আপডেট 1

কেউ হ্যাকার নিউজে এই প্রশ্ন পোস্ট করেছেন , সেখানে কিছু প্রশ্ন / উত্তর রয়েছে। তবে আমি এই প্রশ্নটি আপ-টু-ডেট রাখার চেষ্টা করব যা আমি বজায় রাখার সাথে খুঁজে পেয়েছি।

হার্ডওয়্যার / প্ল্যাটফর্মগুলি আমি এটি পরীক্ষা করেছি:

  • উদাহরণস্বরূপ ইসি 2 সি 1 এক্সএলজার (8 টি কোর, 7 গিগাবাইট র‌্যাম) এবং সিসি 1.4xlarge (2 এক্স ইন্টেল জিয়ন এক্স 5570, 23 জিবি র‌্যাম) রয়েছে। ব্যবহৃত এএমআই যথাক্রমে অ্যামি -08f40561 এবং অ্যামি -1cad5275 ছিল। কেউ আরও উল্লেখ করেছেন যে "সুরক্ষা গোষ্ঠীগুলি" (অর্থাত ইসি 2 ফায়ারওয়াল) এর উপরও প্রভাব ফেলতে পারে। তবে এই পরীক্ষার দৃশ্যের জন্য, আমি এইরকম বাহ্যিক কারণগুলি দূর করতে কেবল লোকালহোস্টে চেষ্টা করেছি। আমি আর একটি গুজব শুনেছি যে ইসি 2 দৃষ্টান্ত 100k পিপিএস এর বেশি চাপ দিতে পারে না।
  • জেন দু'টি প্রাইভেট ভার্চুয়ালাইজড সার্ভার চলছে। পরীক্ষার আগে একজনের শূন্য লোড ছিল তবে কোনও পার্থক্য হয়নি।
  • ব্যক্তিগত ডেডিকেটেড, র্যাকস্পেসে জেন-সার্ভার। সেখানে একই ফলাফল।

আমি এই পরীক্ষাগুলি পুনরায় চালানোর প্রক্রিয়া করছি এবং https://gist.github.com/985475 এ প্রতিবেদনগুলি পূরণ করার প্রক্রিয়া করছি আপনি যদি সহায়তা করতে চান তবে আপনার সংখ্যাগুলি অবদান রাখুন। এটি সহজ!

(অ্যাকশন প্ল্যানটি পৃথক, একীভূত উত্তরে সরিয়ে নেওয়া হয়েছে)


3
কোনও ইস্যুতে দুর্দান্ত কাজ পিনপয়েন্টিং, তবে আমি বিশ্বাস করি যে আপনাকে একটি জেন-নির্দিষ্ট মেলিং তালিকা, সমর্থন ফোরাম বা এমনকি জেনসোর্স বাগ রিপোর্ট সাইটটিতে আরও ভাল পরিবেশন করা হবে । আমি বিশ্বাস করি এটি কিছু শিডিয়ুল বাগ হতে পারে - যদি আপনি আপনার 7,000 সংযোগ * 4 কোর / 0.80 সিপিইউ লোড নেন তবে আপনি ঠিক 35,000 পেয়ে যাবেন - 4 কোরের সম্পূর্ণরূপে স্যাচুরেট হওয়ার পরে আপনি যে নম্বরটি পেয়ে যাবেন।
দ্য ওয়াববিট

আহ, এবং আরও একটি জিনিস: আপনি যদি পারেন তবে আপনার অতিথির জন্য আলাদা (আরও সাম্প্রতিক সম্ভবত) কার্নেল সংস্করণ ব্যবহার করে দেখুন।
দ্য ওয়াববিট

@ সিনেটিকন-ডিজে ধন্যবাদ আমি এটি কর্নেল ২.6.৩৮ সহ ইসি 2 তে সিসি 1.4 এক্স্লারেজে চেষ্টা করেছিলাম। আমি ভুল না হলে প্রায় 10 ডলার বৃদ্ধি দেখেছি। তবে সম্ভবত এটির ধরণের বিফায়ার হার্ডওয়ারের কারণে এটি।
সিজিবিস্ট্রোম

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

@ জেফ কর্ম পরিকল্পনাটি সরান, পরীক্ষা করুন।
সিজিবিস্ট্রোম

উত্তর:


27

এই মুহূর্তে: ছোট প্যাকেটের কর্মক্ষমতা জেনের অধীনে স্তন্যপান

(পরিবর্তে প্রশ্ন থেকে পৃথক উত্তরে সরানো হয়েছে)

এইচএন-র একজন ব্যবহারকারীর মতে (কেভিএম বিকাশকারী?) জেন এবং কেভিএম-তে ছোট প্যাকেটের পারফরম্যান্সের কারণে এটি ঘটেছে। ভার্চুয়ালাইজেশনের সাথে এটি একটি পরিচিত সমস্যা এবং তাঁর মতে, ভিএমওয়্যারের ইএসএক্স এটি আরও ভাল পরিচালনা করে। তিনি আরও উল্লেখ করেছিলেন যে কেভিএম এই ( মূল পোস্ট ) প্রশমিত করার জন্য ডিজাইন করা কিছু নতুন বৈশিষ্ট্য নিয়ে আসছে ।

এটি সঠিক হলে এই তথ্যটি কিছুটা নিরুৎসাহজনক is যে কোনও উপায়ে, কিছু জেন গুরু একটি নির্দিষ্ট উত্তর না আসা পর্যন্ত আমি নীচের পদক্ষেপগুলি চেষ্টা করব :)

নেটপার্ফ গ্রাফ জেন -ব্যবহারকারীদের মেলিংয়ের তালিকা থেকে আয়েন কে এই গ্রাফটি সংকলন করেছেন: টিসিপি_সিআরআর বারগুলি লক্ষ্য করুন, "2.6.18-239.9.1.el5" বনাম "2.6.39 (জেন 4.1.0 এর সাথে)" তুলনা করুন।

প্রতিক্রিয়া / উত্তরের উপর ভিত্তি করে এখানে এবং এইচএন থেকে বর্তমান ক্রিয়া পরিকল্পনা :

  1. জেন-নির্দিষ্ট মেলিং তালিকায় এই সমস্যাটি জমা দিন এবং সিনেটিকন-ডিজে-এর পরামর্শ অনুসারে জেনসোর্স-এর বাগজিলা একটি জেন -ব্যবহারকারী তালিকায় একটি বার্তা পোস্ট করা হয়েছে , উত্তরের অপেক্ষায় অপেক্ষা করছে।

  2. একটি সাধারণ প্যাথলজিকাল, অ্যাপ্লিকেশন-স্তরের পরীক্ষার কেস তৈরি করুন এবং এটি প্রকাশ করুন।
    নির্দেশাবলী সহ একটি পরীক্ষা সার্ভার তৈরি করা হয়েছে এবং গিটহাবে প্রকাশ করা হয়েছে । এটির সাথে নেটপারফের তুলনায় আপনি আরও বাস্তব-বিশ্বের ব্যবহারের ক্ষেত্রে দেখতে সক্ষম হবেন।

  3. একটি 32-বিট পিভি জেন ​​অতিথির উদাহরণটি ব্যবহার করে দেখুন, কেননা in৪-বিট জেনে আরও ওভারহেডের কারণ হতে পারে। এইচএন তে কেউ উল্লেখ করেছেন। কোনও পার্থক্য করেনি।

  4. এইচএন-তে অ্যাফ অফ দ্বারা প্রস্তাবিত সিস্টেমে নেট.আইপিভি 4.টিসিপি_সাইকুকিগুলিকে সিস্কটিটলকনফ-এ সক্ষম করার চেষ্টা করুন। এই দৃশ্যত পারে পারফরম্যান্সের উন্নতি যেহেতু হ্যান্ডশেক কার্নেলের মধ্যে ঘটবে। এই সঙ্গে আমার ভাগ্য ছিল না।

  5. এইচএন-তে অ্যাফ অফ দ্বারা প্রস্তাবিত ব্যাকলগটি 1024 থেকে অনেক বেশি কিছুতে বাড়ান। এটিও সাহায্য করতে পারে যেহেতু অতিথি সম্ভাব্যভাবে () এর ডোম0 (হোস্ট) দ্বারা প্রদত্ত কার্যকরকরণের সময় আরও সংযোগ গ্রহণ করতে পারে।

  6. ডাবল-চেক করুন যে কনট্র্যাক সমস্ত মেশিনে অক্ষম রয়েছে কারণ এটি গ্রহণের হারকে অর্ধেক করতে পারে (দেউবুলিউ প্রস্তাবিত)। হ্যাঁ, এটি সমস্ত পরীক্ষায় অক্ষম ছিল।

  7. "শোনার সারি ওভারফ্লো এবং নেটস্যাট-এস-এ বাল্কিটগুলি ওভারফ্লো" (এইচএন-তে মাইক_সেস্প দ্বারা প্রস্তাবিত) পরীক্ষা করুন।

  8. একাধিক কোরগুলির মধ্যে বিঘ্নিত হ্যান্ডলিংকে বিভক্ত করুন (আরপিএস / আরএফএসের আগে সক্ষম করার চেষ্টা করেছি এটি করার কথা, তবে এটি আবার চেষ্টা করার মতো হতে পারে)। অ্যাডাম্ট এইচএন তে প্রস্তাবিত।

  9. টিসিপি সেগমেন্টেশন অফলোড এবং স্ক্যাটার / ম্যাক বেইলির পরামর্শ অনুসারে ত্বরণ সংগ্রহ করা বন্ধ করা। (ইসি 2 বা অনুরূপ ভিপিএস হোস্টে সম্ভব নয়)


2
+1 আপনি যখন খুঁজে পেয়েছেন অবশ্যই সম্পাদনার ফলাফল পোস্ট করুন!
খ্রিস্টিয়াকক

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

21

উপাখ্যান্তভাবে, আমি দেখতে পেয়েছি যে এনআইসির হার্ডওয়্যার ত্বরণ বন্ধ করা জেন নিয়ামক (এলএক্সসির ক্ষেত্রেও সত্য) নেটওয়ার্কের কার্যকারিতা ব্যাপকভাবে উন্নত করে:

ছড়িয়ে ছিটিয়ে থাকা এসিসেল:

/usr/sbin/ethtool -K br0 sg off

টিসিপি বিভাজন অফলোড:

/usr/sbin/ethtool -K br0 tso off

যেখানে হাইপারভাইজার হোস্টে br0 হ'ল আপনার সেতু বা নেটওয়ার্ক ডিভাইস। প্রতিটি বুটে এটি বন্ধ করতে আপনাকে এটি সেট আপ করতে হবে। YMMV।


আমিও একমত. জেনে আমার একটি উইন্ডোজ 2003 সার্ভার চালু ছিল যা হাই থ্রুপুট শর্তে কিছু ভয়াবহ প্যাকেট ক্ষতির সমস্যার মুখোমুখি হয়েছিল। সমস্যাটি চলে গেল যখন আমি টিসিপি সেগমেন্টটি
অফলোডটি

ধন্যবাদ। আমি আপনার পরামর্শ সহ মূল প্রশ্নে "অ্যাকশন পরিকল্পনা" আপডেট করেছি।
সিজিবিস্ট্রোম


3

হতে পারে আপনি কিছুটা স্পষ্ট করে বলতে পারেন - আপনি নিজের সার্ভারে জেনের অধীনে পরীক্ষা চালিয়েছেন, বা কেবল ইসি 2 উদাহরণে?

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

সর্বশেষে, এমনই মনে হয় যে সিপিইউ / কার্নেল সংমিশ্রণগুলি ইসি 2 (এবং সম্ভবত জেন সাধারণভাবে) এর উপর অদ্ভুত সিপিইউ ব্যবহার / হ্যাঙ্গআপগুলি সৃষ্টি করে, যেমনটি সম্প্রতি লিবারো দ্বারা ব্লগ করা হয়েছিল


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

0

আপনি dom0 এ ব্রিজিং কোডটিতে iptables এবং অন্যান্য হুক অক্ষম করেছেন তা নিশ্চিত করুন। স্পষ্টতই এটি ব্রিজ নেটওয়ার্কিং জেন সেটআপে কেবল প্রযোজ্য।

echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 0 > /proc/sys/net/bridge.bridge-nf-call-arptables

এটি সার্ভারের আকারের উপর নির্ভর করে তবে ছোটগুলিতে (4-কোর প্রসেসর) একটি সিপিইউ কোর জেন ডোম0 এ উত্সর্গ করে এবং এটি পিন করে। হাইপারভাইজার বুট বিকল্পগুলি:

dom0_max_vcpus=1 dom0_vcpus_pin dom0_mem=<at least 512M>

আপনি কি শারীরিক ইথারনেট পিসিআই ডিভাইসটিকে ডোমুতে পাস করার চেষ্টা করেছিলেন? চমৎকার পারফরম্যান্স বুস্ট করা উচিত।

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