একটি ডেটা সেন্টারের সাথে বিলম্ব কী? আমি এটি ধরে রেখে জিজ্ঞাসা করি যে এখানে তফাৎটির পরিমাণ রয়েছে


17

আমি এমন কিছু বের করার চেষ্টা করছি যা আমি কেবল একটি ভাল উত্তর পাই না।

যদি আমি কোনও ডেটা সেন্টারে বসে একটি রেডিস ক্যাশে (বা কিছু বাহ্যিক ইন-মেমরি ক্যাশে) এবং একই ডেটা সেন্টারে বসে একটি অ্যাপ্লিকেশন সার্ভার বলে থাকি তবে ডেটা পড়ার জন্য নেটওয়ার্ক সংযোগের গতি (বিলম্ব, থ্রুটপুট) কত হবে? এই দুটি মেশিনের মধ্যে?

নেটওয়ার্ক "গতি", উদাহরণস্বরূপ, কি রেডিসের ক্যাশে থেকে আমার ডেটা খুঁজছে এমন র‌্যামের গতির চেয়ে কমপক্ষে কমপক্ষে একটি ক্রম হবে?

আমার চূড়ান্ত প্রশ্নটি হচ্ছে - রেডিসের স্মৃতিতে বসে এই সমস্ত কি আসলে কোনও ইউটিলিটি সরবরাহ করে? এর পরিবর্তে যদি রেডিস এই সমস্তটিকে একটি এসএসডি-র পরিবর্তে ক্যাশে করে চলেছে? স্মৃতি ব্যয়বহুল। যদি ডাটা সেন্টারের সাথে নেটওয়ার্কটি যদি সত্যই বাধা না দেয় তবে মেমোরিটির মান থাকে। অন্যথায়, এটি না।

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


1
এটি লেনদেনের জন্য রাউন্ডট্রিপগুলির সংখ্যার উপরও নির্ভর করে, প্রায়শই এটিই আসল সমস্যা যা আপনি প্রশ্নের ক্রমের ক্রমিকায় ক্রমিক হয়েছিলেন। আরও জটিল ক্যোয়ারী ইন্টারফেস, একটি সার্ভার সাইড প্রক্রিয়া বা একটি ডেনারমালিজডাব্লুড ক্যাশে প্রভাবকে হ্রাস করতে পারে।
197

উত্তর:


19

"বিলম্বিত চার্ট প্রত্যেকের জানা উচিত" এর কয়েকটি সংস্করণ রয়েছে যেমন:

বিষয়টি হ'ল বাস্তবে স্রেফ বিলম্বের চেয়ে আরও কিছু আছে। এটি ফ্যাক্টরের সংমিশ্রণ।

সুতরাং, কোনও ডাটা সেন্টারের মধ্যে নেটওয়ার্কের বিলম্ব কী? বিলম্বিতা, ভাল আমি এটি 1 এমএসের নীচে "সর্বদা" বলব। এটি কি র‌্যামের চেয়ে দ্রুত? না এটি কি র‌্যামের কাছাকাছি? আমি তাই মনে করি না.

তবে প্রশ্নটি রয়ে গেছে, এটি কি প্রাসঙ্গিক? আপনার কি সেই ড্যাটামটি জানা দরকার? আপনার প্রশ্নটি আমাকে বোঝায়। যেহেতু সবকিছুর একটি ব্যয় থাকে, আপনার কি আরও বেশি র্যাম পাওয়া উচিত যাতে সমস্ত ডেটা র‍্যামে থাকতে পারে বা সময় সময়ত ডিস্ক থেকে পড়া ঠিক আছে।

আপনার "অনুমান" হ'ল যদি এসএসডি-র গতির চেয়ে নেটওয়ার্কের ল্যাটেন্সিটি বেশি (ধীর) হয় তবে আপনার নেটওয়ার্কের ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে র্যামের সমস্ত ডেটা থাকা সম্ভব হবে না।

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

এটিকে একক ফ্যাক্টর যেমন ভারী বোঝা হিসাবে সিদ্ধ করা শক্ত। তবে হ্যাঁ, আপনার যদি একটি একক অপারেশন চলতে থাকে তবে নেটওয়ার্কটির বিলম্বিতাটি এমন যে আপনি সম্ভবত এসএসডি বনাম র্যামের পার্থক্যটি লক্ষ্য করবেন না।

12 জিবিপিএস ডিস্কটি বাজারে প্রদর্শিত না হওয়া পর্যন্ত, 10 জিবিপিএস নেটওয়ার্ক লিঙ্কটি কোনও একক স্ট্রিম দ্বারা ওভারলোড হবে না কারণ ডিস্কটি বাধা ছিল।

তবে মনে রাখবেন যে আপনার ডিস্কটি আরও অনেকগুলি কাজ করছে, আপনার প্রক্রিয়াটি মেশিনে একমাত্র প্রক্রিয়া নয়, আপনার নেটওয়ার্ক বিভিন্ন জিনিস বহন করতে পারে ইত্যাদি may

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


এখনও অবধি আমি আপনার প্রশ্নের কিছু বিবরণ এড়িয়ে গেছি - বিশেষ করে রেডিস অংশ।

রেডিস একটি ওপেন সোর্স (বিএসডি লাইসেন্সযুক্ত), ইন-মেমরি ডেটা স্ট্রাকচার স্টোর, যা ডাটাবেস, ক্যাশে এবং বার্তা ব্রোকার হিসাবে ব্যবহৃত হয়। - https://redis.io/

ঠিক আছে, যার অর্থ সমস্ত কিছু স্মৃতিতে রয়েছে। দুঃখিত, এই দ্রুত এসএসডি ড্রাইভটি আপনাকে এখানে সাহায্য করবে না। রেডিস ডিস্কে ডেটা ধরে রাখতে পারে, তাই এটি পুনরায় চালু হওয়ার পরে র‍্যামে লোড করা যায়। এটি কেবল ডেটা "হারাতে" বা পুনরায় আরম্ভের পরে একটি ঠান্ডা ক্যাশে পুনরায় তৈরি করতে হবে। সুতরাং এক্ষেত্রে আপনাকে র‌্যামটি ব্যবহার করতে হবে, তা যাই হোক না কেন। আপনার ডেটা সেটটি ধারণ করতে আপনার পর্যাপ্ত র‍্যাম থাকতে হবে। পর্যাপ্ত র‌্যাম নেই এবং আমি অনুমান করি যে আপনার ওএস ব্যবহার করবে swap- সম্ভবত এটি ভাল ধারণা নয়।


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

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

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

তবে একটি 10 ​​জি নেটওয়ার্কের লিঙ্কটি নিম্ন প্রান্তে। আমার সার্ভারগুলি 200 গিগাবাইট (হ্যাঁ, 2x100g লিঙ্ক) এর সাথে আমার ব্যাকবোনটিতে সংযুক্ত রয়েছে।
টমটম

3

কম্পিউটার সিস্টেমে ক্যাশের অনেক স্তর রয়েছে। অ্যাপ্লিকেশন স্তরে একটি সন্নিবেশ করা উপকারী হতে পারে, এপিআই এবং ডেটাবেস কোয়েরি ক্যাচ করা। এবং সম্ভবত ব্যবহারকারীর সেশনের মতো অস্থায়ী ডেটা।

রেডিসের মতো ডেটা স্টোরগুলি কোনও নেটওয়ার্ক (দ্রুত) বা ইউনিক্স সকেট (আরও দ্রুত) এর মাধ্যমে এমন পরিষেবা সরবরাহ করে, যেমন আপনি কোনও ডাটাবেস ব্যবহার করেন।

আপনার অ্যাপ্লিকেশনটি আসলে কীভাবে সম্পাদন করে তা আপনাকে পরিমাপ করতে হবে তবে আসুন একটি উদাহরণ তৈরি করি। বলুন একটি সাধারণ ব্যবহারকারীর অনুরোধে 5 টি এপিআই ক্যোরি রয়েছে যা প্রতিটি 50 এমএস করে। 250 এমএস ব্যবহারকারীর সনাক্তকরণে বিলম্ব la ফলাফলগুলি ক্যাশে করার বিপরীতে। এমনকি ক্যাশেটি শহর জুড়ে ভিন্ন প্রাপ্যতা অঞ্চলে থাকলেও (অনুকূল নয়), হিট সম্ভবত সবচেয়ে বেশি 10 এমএস ms যা 5x স্পিডআপ হবে।

বাস্তবে, ডাটাবেস এবং স্টোরেজ সিস্টেমগুলির নিজস্ব ক্যাস রয়েছে। যাইহোক, সাধারণত ডাটাবেস ইঞ্জিন এবং স্টোরেজ সিস্টেমের স্তরগুলির মধ্যে দিয়ে যাওয়ার চেয়ে প্রাক-ফলিত ফলাফল পাওয়া দ্রুত হয়। এছাড়াও, ক্যাচিং স্তরটি এর পিছনে ডাটাবেসের উল্লেখযোগ্য লোড নিতে পারে।

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

স্মৃতি ব্যয়বহুল।

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


আপনি কী দয়া করে তা নির্ধারণ করতে পারেন যে আপনি কীভাবে গণনা করেছেন যে এই 5 টি এপিআই প্রশ্নের প্রতিটি 50 এমএস করে? এটি কি সেই আবেদনের আওতায় ডেটাবেস আপ করছে এবং কোয়েরি করছে এবং ফলাফল সেটটি গণনা করছে, বনাম কেবল শহরজুড়ে একটি ক্যাশে মারছে যা ঘটনাকে নিজের হিসাবে ক্যারিয়ার স্ট্রিংকে মূল হিসাবে ক্যাশে করেছে এবং ফলাফলটির একটি ক্যাশে অনুলিপি রয়েছে সেট?
নীরজ মুরারকা

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

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

1
রিমোট ডেটাসেন্টার সবচেয়ে খারাপ, আদর্শভাবে ক্যাশে স্তরটি তার ক্লায়েন্টদের থেকে 1 এমএসের কম। সম্ভবত একই প্রাপ্যতা অঞ্চল, এমনকি একই হোস্টেও। আপনি চাইলে অবিরাম স্টোরেজে ক্যাশে রাখতে পারেন। বা, আপনি প্রাথমিক ডাটাবেসের জন্য সেই শক্ত রাষ্ট্র স্টোরেজটি ব্যবহার করতে পারেন, সমস্ত প্রশ্নের গতি বাড়িয়ে তুলতে পারেন, এবং সম্ভবত একটি ক্যাচিংয়ের স্তরের প্রয়োজন নেই। একাধিক সম্ভাব্য ডিজাইন রয়েছে।
জন মাহোয়াল্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.