এনগিনেক্স বনাম অ্যাপাচি - সেখানে কোনও বাস্তব ব্যবহারের তুলনা এবং স্ট্যাটিস্টিকস রয়েছে?


45

আমার সাথে খেলতে একটি নতুন সার্ভার রয়েছে এবং আমি একটি ফাঁকা ক্যানভাসটি দেখছি। আমি এটিতে যা চাই তা রাখতে পারি। আমি আপাচে স্বাচ্ছন্দ্য বজায় রেখেই শুনতে পেয়েছি, এনগিনেক্স কীভাবে 10, 100, এমনকি আরও বেশিগুলির দ্বারা, অ্যাপাচি এর চেয়ে বেশি ট্র্যাফিক পরিচালনা করতে পারে। এটি কেবল "অনেক দ্রুত" নয়।

যখন আমি নিবন্ধগুলি অনুসন্ধান করি তখন আমি দ্রুপালের সাথে সম্পর্কিত না প্রচুর স্টাফ পেতে পারি। বা, যখন আমি কোনও দ্রুপাল সম্পর্কিত নিবন্ধটি দেখতে পাচ্ছি এটি হয় 1) এটির কীভাবে সেট আপ করবেন তা ব্যাখ্যা করার জন্য দ্রুত চেষ্টা করে কারওর কনফিগারেশন ফাইল, বা 2) এটি কেউ বলছে "না, এনজিনেক্স ব্যবহার করবেন না, পিএইচপি দিয়ে অ্যাপাচে যান fcgid "তবে কেন এর ব্যাখ্যা নেই explanation

সুতরাং, দ্রুপালের কথা আসলে এখানে বাস্তবতা কী?

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

যদিও লেখক Mod_php কে fcgid এর সাথে তুলনা করেছেন, আমি একই ধরণের ব্যাপক, বাস্তব বিশ্বের চেহারা অ্যাপাচি বনাম Nginx এ খুঁজছি।

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

এই সার্ভারটিতে যে সাইটটি যাবে সে মাসে মাসে 2 মিলিয়ন পিভি হয়। এলএএমপি স্ট্যাক চলমান সেন্ট ওএস 4. চারটি সিপিইউ সহ ৮ জিআইজিএস র‌্যাম। মেমক্যাচড এবং এপিসি মিশ্রণের অংশ হবে। ড্রুপাল ইনস্টল সম্পর্কে বিশেষ কিছু নেই - প্রায় 50 টি মডিউল সহ মূলত ভ্যানিলা 7।


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

উত্তর:


60

কড়া কথা বললে, এটি আপনার জিজ্ঞাসা করা প্রশ্নের উত্তর দেয় না। আমি আশা করি এটি যেভাবেই সহায়ক।

এ্যাপাচি / nginx / lighttpd / অন্যান্য ওয়েব সার্ভার। আমি কোনটি বেছে নেওয়ার বিষয়টি বিবেচনা করে? সংক্ষেপে, না

অনেক দীর্ঘ উত্তর:

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

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

তর্কের খাতিরে: ধরা যাক আপনি সমস্ত কিছুর অনুকূলিতকরণের জন্য প্রচুর সময় ব্যয় করেছেন।

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

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

উপরোক্তভাবে যৌক্তিকভাবে এই সিদ্ধান্তে পৌঁছানোর চেষ্টা করা হয়েছিল যে ওয়েব সার্ভারটি অনুকূল করে সময় পারফরম্যান্স ব্যয় করা সম্ভবত সময়ের খারাপ ব্যবহার। আমি উপরের গর্তগুলিতে কেউ বাছাই করতে চাই তবে আমি এ থেকে সম্ভবত নতুন কিছু শিখতে পারি। :)

কিছু অন্যান্য নোট:

  1. সময় DrupalCon কোপেনহেগেন তান , পিএইচপি স্রষ্টা Rasmus Lerdorf , nginx নিজে ব্যবহার করে, Drupal এর কর্মক্ষমতা বিষয়ে বলেন, "মানুষ সবসময় আমার ওয়েব সার্ভার সম্পর্কে জিজ্ঞাসা ... এটা সত্যিই না ব্যাপার, ওয়েব সার্ভার প্রায় কাছাকাছি অপ্রাসঙ্গিক নেই" । (ভিডিওটিতে মোটামুটি 26:30 এ)
  2. ফেসবুক হিপহপ লেখার ক্ষেত্রে অগণিত সময় ব্যয় করেছে , একটি "বেসল" 100% দ্বারা পিএইচপি-কোডকে ত্বরান্বিত করার জন্য, ড্রপালের চেয়ে উল্লেখযোগ্য পরিমাণে বড় কোড বেস। আমি $ wc -l $(find . -type f | grep -v "^\.git" | grep -v "^\.hphp/third_party") | sort -nr | head -n1হিপহপটি দিয়ে পরীক্ষা করে দেখেছি এটিতে 1.512.481 লাইন কোড রয়েছে। এটি পিএইচপি-র গতির উন্নতি করার জন্য একেবারে উন্মাদ পরিমাণ কাজ work আমি অনুমান করছি কারণ এটি পিএইচপি এর গতি তাদের জন্য খুব গুরুত্বপূর্ণ।
  3. আমি কি উল্লেখ করেছি যে ভাল ক্যাচিংয়ের ফলে আরও অনেক বেশি প্রভাব পড়তে পারে যে ওয়েব সার্ভারটি টিউন করছে?
  4. এ্যাপাচি 2.4 মুক্তির সঙ্গে, জিম Jagielski মূলত দাবী করেন যে এ্যাপাচি 2.4 দ্রুত ঘটনা ভিত্তিক সার্ভার চেয়ে
  5. আমি ড্রিম টিমটির সাথে ড্রুপাল পারফরম্যান্স এবং স্কেলাবিলিটিটির প্রতি মনোনিবেশ করেছি , যেখানে এই প্রশ্নটি এসেছে। কোন উত্তর নির্বাচন করতে হবে তার সমস্ত উত্তরই পারফরম্যান্সের সাথে সম্পর্কিত নয়। "আপনি কোনটি কনফিগার করতে ইতিমধ্যে জানেন", এবং "কোনটি আপনাকে সর্বাধিক প্রযুক্তি স্ট্যাক তৈরি করতে দেয়" এর মতো বিষয়গুলি অপরটির উপর নির্ভর করার কারণগুলির মধ্যে অন্যতম ছিল। পারফরমেন্স হয়নি না ছবি লিখুন।

4
সিএসএন, সিএসএন, জেএস, এবং ইমেজ অনুরোধগুলির সর্বাধিক সংখ্যাটিকে ওয়েব সার্ভারে আঘাত করা থেকে বিরত রাখতে ভুলবেন না।
এমপিডোনাদিও

দুর্দান্ত পয়েন্ট! আমার মনে হয় আমাকে কোনও সময়ে drupal.stackexchange.com/questions/24180/… আবার লিখতে হবে । অ্যাপাচি / এনগিনেক্স সম্পর্কে আলোচনাটি পারফরম্যান্স অপটিমাইজেশনের একটি বিস্তৃত তালিকা তৈরির অনুকূল স্থান হিসাবে মনে হচ্ছে না।
লেথারিয়ান

1
এটি একটি দুর্দান্ত উত্তর। একটি মাত্র নটপিক: আপনার "ইসসিএমএসক্রিপ্ট" এবং "জাভাস্ক্রিপ্ট" বিনিময়যোগ্যভাবে ব্যবহার করা উচিত নয়। ECMAScript এর চেয়ে জাভাস্ক্রিপ্টের অনেক কিছুই আছে।

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

আপনার সার্ভারকে কম র‌্যাম ব্যবহার করার জন্য টিউন করা একেবারে ঠিক আছে, তবে আপনি যদি উচ্চ কার্যকারিতা অঞ্চলে যাওয়ার চেষ্টা করছেন তবে সম্ভবত আপনি কোনও ডেডিকেটেড সার্ভারে বার্নিশ চালিয়ে যাবেন, তাই আপনার HTTP সার্ভার এবং ক্যাশে একই মেমরির জন্য প্রতিযোগিতা করবে না।
লেটারিয়ান

32

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

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

অ্যাপাচি একটি প্রক্রিয়া ভিত্তিক সার্ভার। অর্থ এটি প্রতিটি অনুরোধের জন্য একটি প্রক্রিয়া কাঁটাচামচ করে। এনগিনেক্স একটি ইভেন্ট ভিত্তিক সার্ভার, অর্থ প্রক্রিয়া বা থ্রেডের পরিবর্তে একটি (অ্যাসিনক্রোনাস) ইভেন্ট-লুপ ব্যবহার করে।

এবং যখন একটি প্রক্রিয়া-ভিত্তিক সার্ভার (অ্যাপাচি -এর মতো) হালকা বোঝার অধীনে ভারী ভারী লোডের অধীনে ভারী ভারী লোডের অধীনে 10'0000 যুগপত অনুরোধের তুলনায় অ্যাসিঙ্ক্রোনাস ইভেন্ট-ভিত্তিক সার্ভারের (যেমন এনজিনেক্স) কম বা বেশি সঞ্চালন করতে পারে, এনজিনেক্স কেবলমাত্র কয়েকটি ব্যবহার করে র‌্যামের মেগাবাইট, অন্যদিকে অ্যাপাচি ওয়েব সার্ভারের জন্য একশত মেগাবাইট প্রয়োজন (ওয়েব অ্যাপ্লিকেশন সহ নয়, যা আরও বেশি রিসোর্সগুলির নিজস্ব প্রয়োজন) যদি এটি কিছুটা করতে পারে।

তাই ভারী বোঝার নিচে আপনি দেখতে পাবেন যে অ্যাপাচি অনেক বেশি র‍্যাম গ্রাস করে, যা অবাক করে দিয়ে পারফরম্যান্সকে উল্লেখযোগ্যভাবে হ্রাস করে।

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

এক্স সমবর্তী সংযোগগুলি দ্বারা ব্যবহৃত মোট মেমরি (কম ভাল)

মেমরি ব্যবহার

হার্ডওয়্যার একটি সেট উপর এক্স সমবর্তী সংযোগে প্রতি সেকেন্ডে পরিবেশন করা যাবে অনুরোধ (আরও ভাল)

প্রতি সেকেন্ডে অনুরোধ

উত্স: ApacheBench দ্বারা dreamhost.com

আরও দেখুন ডিজিটাল মহাসাগর writup।
স্পষ্টতই, এটি অ্যাপাচের জন্য আপনি যে সংযোগ পরিচালনা পরিচালনা করছেন তার উপর নির্ভর করে।


6
আপনি মাথার উপরে পেরেকটি আঘাত করলেন "... তারা কত তাড়াতাড়ি একটি অনুরোধটি পরিবেশন করতে পারে না, তবে তারা একই পরিমাণ হার্ডওয়্যারে কতগুলি অনুরোধ পরিবেশন করতে পারে ..." অবশেষে আমি আমার বকের জন্য সবচেয়ে বড় ঠাঁই পেতে চাই । ঠিক একই হার্ডওয়্যার এবং অন্যান্য ভেরিয়েবলগুলির একটি মেশিন দেওয়া হয়েছে, যদি আমি এনজিন্সের সাথে একদিনে 10,000,000 ব্যবহারকারীদের পরিবেশন করতে পারি যেখানে অ্যাপাচি কেবল 200,000 পরিবেশন করতে পারে তবে অবশ্যই ব্যয়ের দৃষ্টিকোণ থেকে সেরা পছন্দটি হ'ল এনজিনেক্স। একটি নির্দিষ্ট হার্ডওয়্যার কনফিগারেশন দেওয়া, আপনি কি অ্যাপাচে তুলনায় nginx করতে পারে মধ্যে একটি বড় পার্থক্য দেখেছি?
নীল 928

2
অ্যাপাচি ২.৪, বর্তমান প্রকাশে একটি ইভেন্ট-ভিত্তিক মডেল রয়েছে: httpd.apache.org/docs/current/mod/event.html
গ্রেগ

1
এছাড়াও, যারা বলে যে এটি কিছু যায় আসে না কারণ "আপনি যতক্ষণ স্টাফ ক্যাশে করছেন ঠিক ততক্ষণ ঠিক থাকবে": আপনি জানেন কী ক্যাশিং করা দরকার? আপনার নিখরচায় র‌্যাম দরকার।
pqnet

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

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

16

আমি অ্যাপাচি থেকে কয়েক মাস আগে Nginx / PHP-FPM এ স্যুইচ করেছি।

আমি একটি ড্রুপাল ওয়েবসাইট দিয়ে কিছু বেঞ্চমার্ক তৈরি করেছি এবং বেশ কয়েকটি ব্যবহারের কেস পরীক্ষা করছি। 1 সিপিইউ এবং 512 মো রম সহ একটি ভিপিএস সার্ভারে

কেবল ক্যাশে দিয়ে দ্রুপাল

nginx

ab -n 100 -c 30 xxx
Server Software:        nginx
Document Path:          /
Document Length:        24902 bytes

Concurrency Level:      30
Time taken for tests:   2.775 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      2529500 bytes
HTML transferred:       2490200 bytes
Requests per second:    36.04 [#/sec] (mean)
Time per request:       832.394 [ms] (mean)
Time per request:       27.746 [ms] (mean, across all concurrent requests)
Transfer rate:          890.28 [Kbytes/sec] received


httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=100 --num-calls=10
Maximum connect burst length: 1

Total: connections 100 requests 1000 replies 1000 test-duration 48.946 s

Connection rate: 2.0 conn/s (489.5 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 470.6 avg 489.5 max 522.2 median 488.5 stddev 9.5
Connection time [ms]: connect 0.2
Connection length [replies/conn]: 10.000

Request rate: 20.4 req/s (48.9 ms/req)
Request size [B]: 74.0

Reply rate [replies/s]: min 20.0 avg 20.4 max 20.8 stddev 0.2 (9 samples)
Reply time [ms]: response 46.8 transfer 2.1
Reply size [B]: header 450.0 content 24902.0 footer 2.0 (total 25354.0)
Reply status: 1xx=0 2xx=1000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 6.50 system 17.58 (user 13.3% system 35.9% total 49.2%)
Net I/O: 507.3 KB/s (4.2*10^6 bps)

এ্যাপাচি

ab -n 100 -c 30 xxx
Server Software:        Apache/2.2.16
Document Path:          /
Document Length:        24902 bytes

Concurrency Level:      30
Time taken for tests:   28.364 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      25346000 bytes
HTML transferred:       24902000 bytes
Requests per second:    35.26 [#/sec] (mean)
Time per request:       850.918 [ms] (mean)
Time per request:       28.364 [ms] (mean, across all concurrent requests)
Transfer rate:          872.66 [Kbytes/sec] received


httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=100 --num-calls=10
Maximum connect burst length: 1

Total: connections 100 requests 1000 replies 1000 test-duration 52.261 s

Connection rate: 1.9 conn/s (522.6 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 499.0 avg 522.6 max 591.0 median 518.5 stddev 19.4
Connection time [ms]: connect 0.6
Connection length [replies/conn]: 10.000

Request rate: 19.1 req/s (52.3 ms/req)
Request size [B]: 74.0

Reply rate [replies/s]: min 18.2 avg 19.2 max 19.6 stddev 0.5 (10 samples)
Reply time [ms]: response 46.9 transfer 5.3
Reply size [B]: header 453.0 content 24902.0 footer 2.0 (total 25357.0)
Reply status: 1xx=0 2xx=1000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 6.80 system 18.88 (user 13.0% system 36.1% total 49.1%)
Net I/O: 475.2 KB/s (3.9*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

ক্যাশে এবং বুস্ট দিয়ে ড্রুপাল

nginx

ab -n 10000 -c 30 xxx
Server Software:        nginx
Document Path:          /
Document Length:        25002 bytes

Concurrency Level:      30
Time taken for tests:   2.275 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      253780000 bytes
HTML transferred:       250020000 bytes
Requests per second:    4395.52 [#/sec] (mean)
Time per request:       6.825 [ms] (mean)
Time per request:       0.228 [ms] (mean, across all concurrent requests)
Transfer rate:          108934.95 [Kbytes/sec] received


httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=1000 --num-calls=30
Maximum connect burst length: 1

Total: connections 1000 requests 30000 replies 30000 test-duration 5.971 s

Connection rate: 167.5 conn/s (6.0 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 4.2 avg 6.0 max 13.0 median 4.5 stddev 2.6
Connection time [ms]: connect 0.1
Connection length [replies/conn]: 30.000

Request rate: 5024.0 req/s (0.2 ms/req)
Request size [B]: 74.0

Reply rate [replies/s]: min 5017.2 avg 5017.2 max 5017.2 stddev 0.0 (1 samples)
Reply time [ms]: response 0.2 transfer 0.0
Reply size [B]: header 405.0 content 25002.0 footer 0.0 (total 25407.0)
Reply status: 1xx=0 2xx=30000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 0.79 system 2.56 (user 13.2% system 42.9% total 56.1%)
Net I/O: 125016.7 KB/s (1024.1*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

এ্যাপাচি

ab -n 1000 -c 30 xxxx
Server Software:        Apache/2.2.16
Document Path:          /
Document Length:        25002 bytes

Concurrency Level:      30
Time taken for tests:   0.753 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      25291000 bytes
HTML transferred:       25002000 bytes
Requests per second:    1327.92 [#/sec] (mean)
Time per request:       22.592 [ms] (mean)
Time per request:       0.753 [ms] (mean, across all concurrent requests)
Transfer rate:          32797.26 [Kbytes/sec] received


httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=100 --num-calls=10
Maximum connect burst length: 1

Total: connections 100 requests 1000 replies 1000 test-duration 1.148 s

Connection rate: 87.1 conn/s (11.5 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 6.2 avg 11.5 max 14.1 median 11.5 stddev 1.3
Connection time [ms]: connect 0.1
Connection length [replies/conn]: 10.000

Request rate: 870.8 req/s (1.1 ms/req)
Request size [B]: 74.0

Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)
Reply time [ms]: response 1.1 transfer 0.1
Reply size [B]: header 260.0 content 25002.0 footer 0.0 (total 25262.0)
Reply status: 1xx=0 2xx=1000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 0.13 system 0.57 (user 11.1% system 49.5% total 60.6%)
Net I/O: 21544.9 KB/s (176.5*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

প্রমাণীকরণকারী ব্যবহারকারীর জন্য মানদণ্ড (পৃষ্ঠা লোড)

nginx

Page load times : 2.85 s

এ্যাপাচি

Page load times : 5.4 s

তবে এনগিনেক্সের শক্তি হ'ল ক্যাশে সিস্টেম

ক্যাশ সিস্টেম সক্ষম করে বুস্ট এবং এনগিনেক্স ছাড়াই ড্রুপাল

Server Software:        nginx
Document Path:          /
Document Length:        24902 bytes

Concurrency Level:      30
Time taken for tests:   2.437 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      252670000 bytes
HTML transferred:       249020000 bytes
Requests per second:    4103.34 [#/sec] (mean)
Time per request:       7.311 [ms] (mean)
Time per request:       0.244 [ms] (mean, across all concurrent requests)
Transfer rate:          101248.99 [Kbytes/sec] received


httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=1000 --num-calls=30
Maximum connect burst length: 1

Total: connections 1000 requests 30000 replies 30000 test-duration 6.044 s

Connection rate: 165.5 conn/s (6.0 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 4.2 avg 6.0 max 11.7 median 4.5 stddev 2.6
Connection time [ms]: connect 0.1
Connection length [replies/conn]: 30.000

Request rate: 4963.7 req/s (0.2 ms/req)
Request size [B]: 74.0

Reply rate [replies/s]: min 4970.1 avg 4970.1 max 4970.1 stddev 0.0 (1 samples)
Reply time [ms]: response 0.2 transfer 0.0
Reply size [B]: header 405.0 content 25002.0 footer 0.0 (total 25407.0)
Reply status: 1xx=0 2xx=30000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 0.72 system 2.68 (user 12.0% system 44.3% total 56.3%)
Net I/O: 123516.8 KB/s (1011.8*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

আপনি ব্যবহার করা উচিত perusio কনফিগারেশন Drupal এর জন্য nginx


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

পিএইচপি (5.3) পরিবেশ ঠিক একই ছিল। অ্যাপাচি এমপিএম_প্রেফের্কে চলছিল, এবং অ্যাপাচি কনফিগারেশন (ম্যাক্সক্লিয়েন্ট, ম্যাক্স্পায়ার সার্ভারস, ম্যাক্সরেইকুইস্টস্পিয়ারচিল্ড, ইত্যাদি) পিএইচপি 5-
এফপিএমের

4
এগুলি ভাল নম্বর, তবে তারা সত্যিকারের তুলনা কিনা তা আমি নিশ্চিত নই। অ্যাপাচি + ফাস্টসিজিআই বনাম অ্যাপাচি + এফসিজিআই + পিএইচপিএফপিএম বনাম এনগিনেক্স + পিএইচপিএফপিএম অ্যাপাচি এবং এনগিনেক্সের মধ্যে পার্থক্য আরও ভাল দেখায়।
এমপিডোনাদিও

এমপিডি যেমন উল্লেখ করেছে, এটি সত্যিকারের তুলনা নয়। সত্যিকারের ছবি পেতে আপনার দুজনের পিএইচপি-এফপিএম চালানো দরকার।

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

0

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

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

তিনটি ড্রুপাল পরীক্ষার মধ্যে দুটি হিয়াওয়থা এবং এনগিনেক্স দু'জনেই আপাচিকে প্রায় ১৫০% ছাড়িয়ে গেছে, তবে ড্রুপাল স্ট্যাটিক টেস্টে আপাচি প্রান্তিকভাবে এনগিনেক্সকে ছাড়িয়ে গেছে, আর হিয়াওয়থা এই প্যাকটি প্রায় ১০% ছাড়িয়েছে।

আমি এই পরীক্ষাগুলির কোনওটিতেই আমার টুপিটি ঝুলিয়ে দেব না, তবে এটি বিভিন্ন ব্যবহারের পরিস্থিতিতে পারফরম্যান্সের একটি বলপার্ক প্রদর্শন করে। আমি মনে করি একা পারফরম্যান্সকে একমাত্র বিবেচনা করা উচিত নয়। স্থিতিশীলতা এবং সুরক্ষা আরও গুরুত্বপূর্ণ কারণ হতে পারে।


0

এখানে একটি হল লোড টেস্টিং একই হার্ডওয়্যারের Drupal চলমান জন্য কিন্তু বিভিন্ন ওয়েব সার্ভারের সাথে ফলাফল নেই। (এনজিনেক্স এবং অ্যাপাচি)

এই পরীক্ষার সমাপ্তি এখানে:

একই হার্ডওয়্যার রিসোর্স সহ একটি বৃহত ট্র্যাফিকের নীচে, এনগিনেক্স অ্যাপাচি থেকে আরও ভাল পারফর্ম করে।

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