আমি এই প্রশ্নের একটি একক সার্ভার থেকে 40 জিবিপিএস বিতরণ করার জন্য সর্বোত্তম সম্ভাব্য কনফিগারেশন / হার্ডওয়্যারটি খুঁজতে চাই।
পরিস্থিতি
আমাদের কাছে একটি ভিডিও শেয়ার প্রক্সি সার্ভার রয়েছে যা এর পিছনে ধীর স্টোরেজ সার্ভার থেকে পিকগুলি অফলোড করে। সমস্ত ট্র্যাফিক কেবল এইচটিটিপি। সার্ভারটি একটি বিপরীত প্রক্সি (ফাইলগুলি যা সার্ভারে ক্যাশে থাকে না) এবং একটি ওয়েবসার্ভার (স্থানীয় ড্রাইভে থাকা ফাইলগুলি) হিসাবে কাজ করে।
বর্তমানে 100TB ফাইল এবং ব্যাকএন্ড স্টোরেজ সার্ভারগুলিতে বাড়ার মতো কিছু রয়েছে।
ক্যাশিং মেকানিজম স্বাধীনভাবে প্রয়োগ করা হয় এবং এই প্রশ্নটি নিজেকে ক্যাশে করা সম্পর্কে নয় কারণ এটি খুব ভালভাবে কাজ করে - বর্তমানে 14 জিবিপিএস সরবরাহ করে, ব্যাকএন্ড সার্ভারগুলিতে কেবল 2 জিবিপিএস পাস করে। সুতরাং ক্যাশের ব্যবহার ভাল।
লক্ষ্য
একটি একক মেশিন থেকে 40 জিবিপিএস বা আরও বেশি থ্রুপুট অর্জন করুন।
হার্ডওয়্যার ঘ
এইচডাব্লু: সুপার মাইক্রো এসসি 825, এক্স 11 এসএসএল-এফ, জিয়ন ই 3-1230v5 (4 সি / 8 টি@3.4GHz), 16 জিবি ডিডিআর 4 র্যাম, 2 এক্স সুপারমিক 10 জি এসটিজিএন-আই 1 এস (এলএসিপি এল 3 + 4)
এসএসডি: 1 এক্স 512 জিবি স্যামসুং, 2x 500 জিবি স্যামসং, 2x480 জিবি ইন্টেল 535, 1 এক্স 240 জিবি ইন্টেল এস 3500
পদ্ধতি:
- ইরাকব্লেন্সার থেমে গেল
- প্রতিটি ইন্টারফেসের জন্য set_irq_affinity (ixgbe ড্রাইভার টারবালের স্ক্রিপ্টের মাধ্যমে)
- ixgbe-4.3.15
- I / O সময়সূচীর সময়সীমা
- iptables খালি (আনলোড লোড মডিউল)
- ফাইল সিস্টেম: এক্সএফএস
nginx:
- প্রেরণ ফাইল বন্ধ
- আইও থ্রেড
- ডিরেক্টরি 1 এম
- tcp_nopush চালু
- tcp_nodelay চালু আছে
গ্রাফগুলিতে যেমন দেখা যায়, আমরা 12.5 জিবিপিএস ধাক্কা দিতে সক্ষম হয়েছি। দুর্ভাগ্যক্রমে সার্ভারটি প্রতিক্রিয়াহীন ছিল।
2 টি জিনিস আমার দৃষ্টি আকর্ষণ করেছে। প্রথমটি হ'ল IRQ এর পরিমাণ বেশি। এক্ষেত্রে আমার কাছে দুর্ভাগ্যক্রমে / proc / বিঘ্ন থেকে গ্রাফ নেই। দ্বিতীয় জিনিসটি ছিল হাই সিস্টেম লোড, যা আমি মনে করি কেবলমাত্র 16 জি র্যামের সাথে কাজ করতে সমস্যা হওয়ায় kswapd0 হয়েছিল was
হার্ডওয়্যার 2
এইচডাব্লু: সুপার মাইক্রো এসসি 119 টিকিউ, এক্স 10 ডিআরডাব্লু-আই, 2 এক্স শিওন ই 5-2609v4 (8 সি / 8 টি@1.70GHz), 128 জিবি ডিডিআর 4 র্যাম, 2 এক্স সুপারমিক 10 জি এসটিজিএন-আই 1 এস
এসএসডি, সিস্টেম কনফিগারেশন হার্ডওয়্যার হিসাবে সমান 1। Nginx প্রেরিত ফাইলটি (আরও তুলনায় aio / সেন্ডফিল) হয়।
এটি আরও ভাল বলে মনে হচ্ছে, সুতরাং এখন আমাদের যেমন একটি সার্ভার রয়েছে, যা শিখরে কাজ করে, আমরা কিছু অপ্টিমাইজেশন চেষ্টা করতে পারি।
সেন্ডফাইল বনাম এওও থ্রেড
আমি এর পরিবর্তে সেন্ডফিল অক্ষম করার এবং এও থ্রেডগুলি ব্যবহার করার চেষ্টা করেছি।
- প্রেরণ ফাইল বন্ধ
- আইও থ্রেড
- ডিরেক্টরি 1 এম (যা আমাদের কাছে থাকা সমস্ত ফাইলের সাথে মেলে)
বনাম
- প্রেরণ ফাইল
তারপরে 15:00 এ আমি সেন্ডফাইলে ফিরে গেলাম এবং এনজিনেক্স পুনরায় লোড করলাম (সুতরাং বিদ্যমান সংযোগগুলি শেষ করতে কিছুক্ষণ সময় নিয়েছে)। এটা দুর্দান্ত যে ড্রাইভের ব্যবহার (iostat দ্বারা পরিমাপ করা) হ্রাস পেয়েছে। ট্র্যাফিকের কোনও কিছুই পরিবর্তিত হয়নি (দুর্ভাগ্যক্রমে জ্যাববিক্স বন্ড0 থেকে ডেটা সংগ্রহ না করার সিদ্ধান্ত নিয়েছে)।
সেনফিল চালু / বন্ধ
কেবল প্রেরণ অন / অফ স্যুইচ করার চেষ্টা করেছি। পুনঃনির্ধারিত বিঘ্ন ব্যতীত কিছুই পরিবর্তন হয়নি।
সার্ভার / ক্রোন / অক্ষম হিসাবে ইরাক্বালেন্সার
@ এলএসডি উল্লেখ করার সাথে সাথে ক্রোনের মাধ্যমে মৃত্যুদণ্ড কার্যকর করার জন্য ইরাকবালেন্সার সেটআপ করার চেষ্টা করেছি:
*/5 * * * * root /usr/sbin/irqbalance --oneshot --debug 3 > /dev/null
দুর্ভাগ্যক্রমে এটি আমার ক্ষেত্রে সহায়তা করেনি। নেটওয়ার্ক কার্ডগুলির মধ্যে একটিতে অদ্ভুত আচরণ শুরু হয়েছিল:
গ্রাফগুলিতে যা ভুল ছিল তা আমি খুঁজে পেলাম না এবং পরের দিন আবার এটি হওয়ার সাথে সাথে আমি সার্ভারে লগ ইন করে দেখলাম একটি কোর 100% (সিস্টেমের ব্যবহার) এ রয়েছে।
আমি পরিষেবা হিসাবে ইরক্বালেন্স শুরু করার চেষ্টা করেছি, ফলাফল এখনও একই ছিল।
তারপরে আমি সেট_িরক_ফিনিটি স্ক্রিপ্টটি ব্যবহার করার সিদ্ধান্ত নিয়েছি এবং এটি তাত্ক্ষণিকভাবে সমস্যার সমাধান করেছে এবং সার্ভার আবার 17 জিবিপিএস পুশ করেছে।
হার্ডওয়্যার 3
আমরা নতুন হার্ডওয়্যারে আপগ্রেড করেছি: 2 ইউ 24 (+2) ড্রাইভ চ্যাসিস (6xSFF), 2x জিয়ন ই 5-2620v4, 64 জিবি ডিডিআর 4 র্যাম (4x16 জিবি মডিউল), 13 এক্স এসএসডি, 2 এক্স সুপারমিক (ইনটেল চিপ সহ) নেটওয়ার্ক কার্ডগুলি। নতুন সিপিইউগুলি পারফরম্যান্সকে অনেক উন্নত করেছে।
বর্তমান সেটআপটি রয়ে গেছে - সেন্ডফাইল ইত্যাদি Only
20 জিবিপিএস সীমা পৌঁছে গেছে।
পরবর্তী গোল? 30Gbps।
পারফরম্যান্সকে কীভাবে উন্নত করা যায় সে সম্পর্কে আমার কাছে বিনা দ্বিধায় ধারণা দিন। আমি এটি সরাসরি পরীক্ষা করে খুশি হব এবং এখানে কিছু ভারী গ্রাফ ভাগ করে নেব।
সিপিইউতে প্রচুর পরিমাণে সফটআইআরকিউ মোকাবেলা করার কোনও ধারণা?
এটি সক্ষমতা পরিকল্পনা সম্পর্কে কোনও প্রশ্ন নয় - আমার কাছে ইতিমধ্যে হার্ডওয়্যার এবং ট্র্যাফিক রয়েছে। আমি ট্র্যাফিকটি সর্বদা বেশ কয়েকটি সার্ভারে বিভক্ত করতে পারি (যা আমাকে ভবিষ্যতে যা করতে হবে) এবং অর্থ দিয়ে সমস্যার সমাধান করতে পারি। এটি যদিও আসল লাইভ দৃশ্যে সিস্টেম অপ্টিমাইজেশন এবং পারফরম্যান্স টিউনিং সম্পর্কে একটি প্রশ্ন।