আমি একটি অ্যানালিটিক্স প্যাকেজ তৈরি করছি, এবং প্রকল্পের প্রয়োজনীয়তার বিবরণে বলা হয়েছে যে আমাকে প্রতিদিন 1 বিলিয়ন হিট সমর্থন করতে হবে। হ্যাঁ, "বিলিয়ন"। অন্য কথায়, প্রতি সেকেন্ডে 12,000 এরও কম হিট টিকেনি, এবং সম্ভবত কিছু জায়গা ফেটে যাবে। আমি জানি যে এর জন্য আমার একাধিক সার্ভারের প্রয়োজন হবে, তবে আমি "এটিতে আরও হার্ডওয়্যার নিক্ষেপ করার আগে" প্রতিটি নোডের সর্বাধিক পারফরম্যান্স পাওয়ার চেষ্টা করছি।
এই মুহূর্তে, আমার হিট-ট্র্যাকিং অংশটি সম্পূর্ণ হয়েছে এবং ভালভাবে অনুকূলিত হয়েছে। আমি বেশ কয়েকটি কেবল অনুরোধগুলি সরাসরি রেডিসে সংরক্ষণ করি (পরে হ্যাডোপের সাথে প্রক্রিয়াজাতকরণের জন্য)। অ্যাপ্লিকেশনটি গেইথওয়ের জন্য বন্দুকবিধাস্বরূপ পাইথন / জ্যাঙ্গো।
আমার 2 জিবি উবুন্টু 10.04 র্যাকস্পেস সার্ভার (কোনও উত্পাদন মেশিন নয়) প্রতি সেকেন্ডে প্রায় 1200 স্ট্যাটিক ফাইল পরিবেশন করতে পারে (একা স্থির সম্পদের বিপরীতে অ্যাপাচি এবি ব্যবহার করে বেঞ্চমার্কযুক্ত)। তুলনা করতে, যদি আমি আমার ট্র্যাকিং লিঙ্কটির সাথে স্থিতিশীল ফাইল লিঙ্কটি সরিয়ে আনি, তবে আমি প্রতি সেকেন্ডে প্রায় 600 টি অনুরোধ পেয়েছি - আমার মনে হয় এর অর্থ আমার ট্র্যাকারটি ভালভাবে অনুকূলিত হয়েছে, কারণ এটি একই স্থির সম্পদ পরিবেশন করার চেয়ে ধীর গতির 2 কারণ মাত্র slow পুনঃপুনঃ.
যাইহোক, যখন আমি কয়েক মিলিয়ন হিট দিয়ে বেঞ্চমার্ক করি, তখন আমি কয়েকটি জিনিস লক্ষ্য করি -
- কোনও ডিস্কের ব্যবহার নেই - এটি প্রত্যাশিত, কারণ আমি সমস্ত এনগিনেক্স লগগুলি বন্ধ করে দিয়েছি এবং আমার কাস্টম কোডটি রেডিসে অনুরোধের বিশদটি সংরক্ষণ ছাড়া কিছুই করে না।
- অবিচ্ছিন্ন মেমরির ব্যবহার - সম্ভবত রেডিসের মেমরি পরিচালনার কারণে, আমার স্মৃতি ব্যবহার ধীরে ধীরে উপরে উঠবে এবং পরে নেমে যাবে, তবে এটি কখনও আমার বাধা হয়ে দাঁড়ায় না।
- 2-4 প্রায় সিস্টেম লোড হোভার, সিস্টেম এখনও আমার গুরুতম benchmarks সময় প্রতিক্রিয়াশীল, এবং আমি এখনও ম্যানুয়ালি দেখতে পারেন http://mysite.com/tracking/pixel সামান্য দৃশ্যমান বিলম্ব যখন আমার (অন্যান্য) সার্ভার সঞ্চালিত 600 অনুরোধের প্রতি দ্বিতীয়।
- আমি যদি একটি ছোট পরীক্ষা চালায় তবে 50,000 হিট বলুন (প্রায় 2 মি) লাগে, আমি প্রতি সেকেন্ডে স্থির, নির্ভরযোগ্য 600 অনুরোধ পাই। আমি যদি দীর্ঘতর পরীক্ষা চালায় (এখন পর্যন্ত 3.5 মিটার পর্যন্ত চেষ্টা করা), আমার আর / এস প্রায় 250 তে অবনমিত হয়।
আমার প্রশ্নগুলো --
ক। দেখে মনে হচ্ছে যে আমি এখনও এই সার্ভারটি আউট করছি? 1,200 / s স্ট্যাটিক ফাইলগুলি Nginx পারফরম্যান্স অন্যেরা যা দেখেছেন তার সাথে কি তুলনাযোগ্য?
খ। এই জাতীয় উচ্চ-ভলিউম অ্যাপ্লিকেশনগুলির জন্য কি সাধারণ এনগিনেক্স টিউনিং রয়েছে? আমার কাছে কর্মী থ্রেড 64৪ এ সেট করা হয়েছে, এবং বন্দুকধারীর কর্মী থ্রেডগুলি 8 এ সেট করা আছে, তবে এই মানগুলি টুইট করা আমার পক্ষে খুব বেশি ক্ষতি করতে পারে না বলে মনে হয় না।
গ। এমন কি কোনও লিনাক্স-স্তরের সেটিংস রয়েছে যা আমার আগত সংযোগগুলিকে সীমাবদ্ধ করতে পারে?
ঘ। দীর্ঘস্থায়ী পরীক্ষায় আমার পারফরম্যান্স 250r / s এ অবনমিত হতে পারে কি? আবার, এই পরীক্ষাগুলির সময় স্মৃতিশক্তি সর্বাধিক বাড়ছে না এবং এইচডিডি ব্যবহার শূন্য।
আগাম ধন্যবাদ, সব :)
সম্পাদনা করুন এখানে আমার এনগিনেক্স কনফিগারেশন - http://pastie.org/1450749 - এটি বেশিরভাগ ভ্যানিলা, সুস্পষ্ট চর্বি ছাঁটাইযুক্ত।