মাইএসকিউএল সার্ভারগুলি অটো স্কেল করার উপায়?


8

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

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

কোন পরামর্শ? তুমাকে অগ্রিম ধন্যবাদ


আপনি আমার মতো একই সমস্যার সাথে আটকে আছেন বলে মনে হয় :( আপনি মাল্টি-মাস্টার প্রতিলিপি বিবেচনা করতে পারেন বা ভারী লেখার সাথে সারণীর জন্য একটি পৃথক ডাটাবেস সমাধান ব্যবহার করার চেষ্টা করতে পারেন I আমি বর্তমানে ভোলটিডবিটি মূল্যায়ন করছি, আমি পরিবর্তে সারণীগুলিকে ভোল্টডেবিতে আংশিকভাবে স্থানান্তরিত করার বিষয়ে বিবেচনা করছি) মাইকিউএলএর
নাইকো এসপি

আপনি "মাইএসকিউএল স্লেভ সার্ভারগুলির সাথে চেষ্টা করেছি তবে এটি মোটেই সহায়ক ছিল না" এর আশেপাশে আরও বিশদ যুক্ত করতে পারেন? আপনি কীভাবে আপনার আর্কিটেকচার পরিবর্তন করেছেন, আপনি কী এমনটা হওয়ার প্রত্যাশা করেছিলেন যা ঘটেছিল না?
নিকগ্রিম

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

উত্তর:


4

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

http://toblender.com/?s=memcached

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

ডিবি রাইটিং লোড হ্রাস করার আরেকটি উপায় হ'ল ঘন ঘন পরিবর্তিত ডেটা হ্যান্ডেল করার জন্য একটি ইন-মেমরি ডেটা স্টোর (যেমন রেডিস) অন্তর্ভুক্ত করা হবে এবং প্রয়োজন সময়ে সময়ে যদি আপনার মূল ডিবিতে পরিবর্তনগুলি লিখুন।


আপনি কী উদাহরণস্বরূপ মেমক্যাচ করা মাইএসকিএল সার্ভারে লেখার চাপ কমাতে সহায়তা করবে?
নিকো এসপি

1
দুঃক্ষিত; আমি সেই অংশটি দেখিনি।
gWaldo

লেট-লেটেন্সি উদ্বেগের সমাধানের জন্য আপডেট উত্তর।
gWaldo

আপনার এসএসডি পরামর্শটি অর্থের উপরে রয়েছে এবং এসএসডিগুলি অল্প অল্প ডাটাবেসের জন্য ব্যয়বহুল নয়। এমনকি বৃহত্তর ডাটাবেস সহ, জেডএফএস সরাসরি এসএলসি ফ্ল্যাশে সমস্ত লেখার ক্যাশে করা সম্ভব করে।
স্কাইহক

তুমি ঠিক বলছো; 12 জিবি ডিবি এর জন্য এসএসডি মোটেও ব্যয়বহুল নয়। আমি ওপির নির্দিষ্ট পরামিতিগুলির তুলনায় জেনারেল-কেস সম্পর্কে বেশি ভাবছিলাম।
gWaldo

3

আপনার স্টার টপোলজি ব্যবহার করা উচিত should

এখানে আমি প্রস্তাব করছি

  • ওয়ান রাইটিং মাস্টার (ওরফে ডাব্লুএম)
  • ওয়ান ডিস্ট্রিবিউশন মাস্টার (ওরফে ডিএম)
  • পাঁচ (5) স্লেভ সার্ভার পড়ুন (ওরফে আরএসএস)

এই মত টপোলজি প্রস্তুত

পদক্ষেপ 01: এই সাধারণ বিকল্পগুলির সাথে 5 আরএসএস সেটআপ করুন

[mysqld]
skip-innodb
key_buffer_size=1G

এর ফলে সমস্ত সারণী মাইআইএসএএম স্টোরেজ ইঞ্জিন হিসাবে লোড হওয়া তৈরি হবে

পদক্ষেপ 02: ডিএম এবং সমস্ত আরএস সার্ভার সেটআপ করুন

  • ডাব্লুএম থেকে স্কেমেডাম্প ফাইল পর্যন্ত সমস্ত টেবিলের স্কিমা mysqldump
  • স্কিমড্যাম্প ফাইলটি ডিএম এবং সমস্ত 5 টি আরএসে লোড করুন
  • tblname ROW_FORMAT=Fixed;আরএসএসের সমস্ত টেবিলগুলিতে ALTER TABLE চালান
  • tblname ENGINE=BLACKHOLE;ডিএম-এ সমস্ত টেবিলে ALTER TABLE চালান
  • ডেটাডাম্পে কেবল mysqldump ডেটা (--no-create-info ব্যবহার করে)
  • সমস্ত 5 আরএসএসে ডেটাডাম্প লোড করুন

পদক্ষেপ 03: ডিএম থেকে সমস্ত 5 আরএসএসের প্রতিরূপ সেটআপ করুন

পদক্ষেপ 04: ডাব্লুএম থেকে ডিএম-এ প্রতিস্থাপন সেটআপ করুন

সেটআপের সমাপ্তি

আপনার পঠন / লেখার প্রক্রিয়াটি কীভাবে কাজ করে তা এখানে

  • আপনার সমস্ত লেখাগুলি (INSERTs, UPDATEs, DELETEs) ডাব্লুএম-তে ঘটে
  • এসকিউএল ডিএম এর বাইনারি লগগুলিতে রেকর্ড করা হয় (কোনও প্রকৃত ডেটা ডিএম-তে থাকে না)
  • প্রতিটি আরএসএস হ'ল ডিএমের একটি রিড স্লেভ
  • আপনার সমস্ত পাঠ আরএসএস এ ঘটে

এখন এখানে ধরা ...

  • আপনি আরএসএস 1-4 ব্যবহার শুরুতে পড়ার জন্য
  • অন্যান্য আরএসএস স্পিন আপ করতে 5 ম আরএসএস ব্যবহার করুন
    • আপনি service mysql stop5 তম আরএসএসে চালান
    • অন্য আরএসএস স্পিন আপ
    • সদ্য সজ্জিত আরএসএসে 5 ম আরএসএসের অনুলিপি / var / lib / mysql এবং /etc/my.cnf
    • আপনি service mysql stop5 তম আরএসএসে চালান
    • আপনি service mysql stopনতুন আরএসএস এ চালান

আপনি বার বার নতুন সার্ভার স্পিন করতে আরএসএস # 5 ব্যবহার করতে পারেন

অন্যদিকে, দয়া করে ডাব্লুএম বা ডিএম এর জন্য XEROUND ব্যবহার করবেন না কারণ তারা InnoDB বা ব্ল্যাকহোল স্টোরেজ ইঞ্জিন সমর্থন করে না।

আমি আশা করি এই ধারণাগুলি সাহায্য করবে।


1

আপনি InnoDB ব্যবহার করেন, তাহলে বিবেচনা করা উচিত মাইএসকিউএল বহু-কর্তা দ্বারা পরিচালিত Galera । এটি মাইএসকিএল মাল্টি-মাস্টার সেটআপকে সহজ করে তোলে এবং আপনার পক্ষে "আধা" স্বয়ংক্রিয়-স্কেল করা সহজ করে তোলে।

আপনি বা আপনার সংস্থাটি যে অ্যাপ্লিকেশনটি লিখছেন এটি যদি আপনি প্রয়োগ করেন তবে আপনি অ্যাপ্লিকেশনটির জন্য একটি শার্ডড (পার্টিশনযুক্ত) ডিজাইনে স্থানান্তর বিবেচনা করতে পারেন। তবে শেয়ারিং জটিল হতে পারে। আপনাকে শুরু করার জন্য এখানে একটি লিঙ্ক দেওয়া আছে।

আমি ধরে নিচ্ছি যে আপনি মাইএসকিএল কনফিগারেশন ফাইলগুলি "টিউন" করেছেন যেমন যথাযথ মেমরির বরাদ্দ রয়েছে in


1

এটি কি আপনি নিয়ন্ত্রণ করেন এমন একটি র‌্যাকের মধ্যে বা মেঘের মধ্যে রয়েছে? 12 জিবি হ'ল ডিস্কের আকারের তুলনায় একটি খুব ছোট ডাটাবেস। এটি একটি RAID1 বা RAID10 ছোট এসএলসি এসএসডি এর অ্যারে রাখুন এবং আপনার লেখার প্রচ্ছন্নতা অদৃশ্য হয়ে যাবে।

ইন্টেল 311 সিরিজের 20GB এসএলসি এসএসডি ($ 120 প্রতিটি) বুদ্ধিদীপ্তভাবে কাজ হবে।

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

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