একটি উচ্চ ট্র্যাফিক ওয়েবসাইট স্কেল করতে আমার কী করা উচিত?


14

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

বিকাশ-স্তরের কাজগুলি থেকে অবকাঠামো, পরিচালনার দিকে আপনি যে সর্বোত্তম অনুশীলন হিসাবে বিবেচনা করেন সে সম্পর্কে আমি শুনতে আগ্রহী।



উইন্ডোজ সার্ভার অ্যাপ ফ্যাব্রিক এবং ক্যাশিংয়ের পোস্ট সম্পর্কে কিছু জানেন এমন কেউ কি এখানে পোস্ট করতে পারেন? আমি এই অঞ্চলে বিশেষজ্ঞ নই এবং আরও শিখতে চাই।
গুডগুইস_অ্যাক্টিভেট

অ্যাপফ্যাব্রিক সম্পর্কে আপনি কী জানতে চান?
হেনরিক

কোনও ওয়েবসাইট কীভাবে স্কেল করা যায় সে সম্পর্কে কিছু টিপস রয়েছে, এটি পরীক্ষা করে অন্তর্ভুক্ত রয়েছে: সামনের-শেষ স্তরের সার্ভার স্ক্রিপ্ট স্তরের মডেল এবং ডিবি ডিজাইন স্তর সার্ভার অনুভূমিক স্কেলিং, ভাগ করে নেওয়া আরও দেখুন: অলিভিটিট.ব্লগস্পট.কম

উত্তর:


16

সংহত জন্য ডিজাইন

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

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


13

কয়েকটি বিষয় যা আপনি বিবেচনা করতে পারেন:

  • আপনার ডেটা স্টোরেজের পাঠ্য এবং লেখার দিকগুলি পৃথক করে।
    • সিকিউআরএস / ইভেন্ট সোর্সিং
    • CQS
    • বার্তা-ক্ষণস্থায়ী / অভিনেতা
  • ভাগ করা প্রক্রিয়া এবং থ্রেডের অবস্থা এড়ানো
    • সুতরাং লকিং এড়ানো
    • আপনি আপনার ক্লাস, স্ট্রাক্টগুলি এবং অন্যান্য ডেটা প্রকারের অপরিবর্তনীয়, অর্থাৎ নির্মাণের পরে অ-পরিবর্তনকারী তৈরি করে টাইপ সিস্টেমের মাধ্যমে এড়াতে পারবেন। বিশেষত জটিল বিমূর্ত ডেটা ধরণের জন্য, এটি আশ্চর্যজনকভাবে ভালভাবে কাজ করে (যেমন jQuery এর প্রয়োগ)
  • আইও-তে ওয়েব সার্ভারের থ্রেডগুলি ব্লক করছে না। আপনি যদি এএসপি ব্যবহার করছেন তবে নেট এপিএম প্যাটার্ন / টাস্ক-সমান্তরাল গ্রন্থাগার (টিপিএল) এর সাথে অ্যাসিঙ্ক্রোনাস পৃষ্ঠা / ক্রিয়া ব্যবহার করুন
  • ব্যবহারকারীর সেশন অভিধানে রাষ্ট্রের লোড সংরক্ষণ করা যায় না
    • আইআইএস-এ থ্রেড মাইগ্রেশন হওয়ার পরে এটি থ্রেড জুড়ে সরিয়ে নিতে হবে।
    • বুদ্ধিমান রাউটিং, যেমন নিরাপদ / স্থিতিশীল সংস্থানগুলি একই অ্যাপ্লিকেশন ফ্রেমওয়ার্কের সাথে পরিবেশন করা হয় না (যেমন এএসপি.নেট) যা ওভারহেড যুক্ত করে। উদাহরণস্বরূপ, বিভিন্ন ওয়েব সার্ভার রয়েছে দেখে নিন।
  • অ্যাসিনক্রোনাস ওয়ার্কফ্লো-প্যাটার্ন সহ ধারাবাহিকতা-পাসিং কোড রচনা করা (উদাহরণস্বরূপ বাঁধাই (হাস্কেল) / কলসিসি / টাস্কস ont কন্টিনিউউথ / এফ# এর অ্যাসিঙ্ক)
  • আপনার বাধা কোথায় ঘটতে পারে তা গণনা করতে কুইউনিং তত্ত্বটি ব্যবহার করুন
  • রিড-মডেলগুলি এবং অন্যান্য অ্যাপ্লিকেশন স্থিতিতে পুল-ভিত্তিক আপডেটগুলির চেয়ে পুশ- ব্যবহার করুন। যেমন রাবিটএমকিউ / এন সার্ভিস বাসের মাধ্যমে
  • প্রযোজ্য 'এইচটিপি হ্যান্ডলার' সর্বাধিক বৈশিষ্ট্যগুলি ব্যবহার করুন
  • স্ট্যাটিক ফাইলগুলির জন্য, ওয়েব পরিকাঠামো যেমনটি করা উচিত তেমন সক্ষম করতে ই-ট্যাগগুলি এবং ক্যাশে সমাপ্তির নীতি পরিবেশন করুন (যেমন স্কুইড প্রক্সি সহ)
  • (আপনার স্কেলিংয়ের সমস্যাগুলি সমাধান করতে এবং সাইটে টিউটোরিয়ালগুলি পেতে আমাকে নিয়োগ করুন;))

4

কিছুই আর্কিটেকচার ভাগ করুন।

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

নির্বিশেষে, "ভাগ করে নেওয়ার কিছু নেই" আর্কিটেকচারের আমি এখনও অনেক মূল্যবান এবং সময় এলে আপনি আপনার সিস্টেমগুলিকে স্তর এবং স্কেল আউট করতে পারেন।


0

কয়েকটি হোস্টনামের অনুরোধগুলির সমান্তরাল করুন

এইচটিটিপি স্ট্যান্ডার্ডের অংশটি এমন একটি বিভাগ যা বলছে যে ওয়েবক্লিয়েন্টরা ডিএনএস হোস্টের জন্য সর্বাধিক 2 সেশনের জন্য অনুরোধ করবে। এখানে একটি সমাধান রয়েছে যেখানে আপনি এবং আপনার www.domain.com ডটকমকে খুঁজে বের করুন এবং আপনার পৃষ্ঠাটিকে দ্রুত লোড করার জন্য একটি উচ্চতর অনুরোধ সম্মতি পাবেন:

/programming/3653609/how-do-i-code-my-asp-net-page-to-parallelize-downloads-across-hostnames

মূলত এটিতে আপনার ASP.NET HTTP হ্যান্ডলারের সম্পাদনা জড়িত টার্গেট হোস্টগুলিকে বিকল্প ক্লায়েন্ট করতে যেখানে আপনি ক্লায়েন্টদের পাঠান সেখানে প্রতিটি হোস্টটি "www" এ সিএমএল থাকে।


1
এই উত্তরের ক্লায়েন্ট পক্ষের পারফরম্যান্স এবং সার্ভারের দিক থেকে স্কেলিংয়ের সাথে কিছুই করার নেই।
কেন লিউ

আমি এইচটিটিপি-র মাধ্যমে অন্যান্য ডেটা উত্সগুলিকে একত্রিত করার মধ্যম স্তরের লাইনে আরও ভাবছিলাম। অ্যাজুরে টেবিল, ওডাটা হ'ল কয়েকটি উদাহরণ ... আপনার পয়েন্টে এখনও, এটি সার্ভার যা ব্রাউজারকে (জাভাস্ক্রিপ্ট) কী করতে হবে তা বলে।
গুডগুইস_অ্যাক্টিভেট

0

সুরক্ষিত, দ্রুত, নির্ভরযোগ্য ডিএনএস

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

ডিএনএস গতি রেকর্ডগুলি ক্যাশে হওয়ার আগে আপনার সার্ভারের প্রাথমিক লোড সময়কেও প্রভাবিত করে।

আমি আমার বেশিরভাগ গ্রাহকদের কাছে ডাইনডিএনএস বা নিউস্ট্রার ব্যবহার করি কারণ তাদের কাছে বেশ শক্ত ডিএনএস অবকাঠামো রয়েছে (যদিও এটি ব্যয়বহুল এবং সেই সংস্থাগুলির সাথে আমার অন্য কোনও সম্পর্ক নেই)।


2
এর ... ডিএনএস কি সত্যিই আপনার জন্য গুরুতর বাধা? আমি ভাবব যে এটি অনুকূলিতকরণের শেষ জিনিসগুলির মধ্যে একটি হবে।
ফিশটোস্টার

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

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

... আমি পুরোপুরি সম্মত হই যে, আপনি যেমন উল্লেখ করেছেন ঠিক তেমন আরও কিছু গুরুত্বপূর্ণ বিষয় রয়েছে। সম্ভবত এই কারণেই এই ধারণার শূন্যের রেটিং রয়েছে :) :) তবে আবার, আমি এখন পর্যন্ত এই প্রশ্নের উত্তর দিয়েছি।
গুডগুইস_অ্যাক্টিভেট

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

0

আমি মনে করি কীটি সহজ হতে চলেছে:

সহজ কোড আছে। এর অর্থ এমন কিছু যা আপনি দেখেন এবং বুঝতে পারেন। আপনি সার্ভারগুলি প্রসারিত এবং পরিবর্তন করার সাথে সাথে আপনার কী হবে তা জানতে হবে। আপনাকে এমন কোডার যুক্ত করতে হবে যা দ্রুত বুঝতে হবে। হুকস এবং এক্সএমএল ফাইলগুলি যা এলোমেলো কোডে কল করে যা সুস্পষ্ট নয় খুব খারাপ।

তারপরে আপনি সমস্যাগুলি পরীক্ষা করে দেখতে পারেন।

এখানে দেখুন: http://blog.servint.net/2013/08/27/oming-big-how-to-scale-a-website-part-1-inf पाया-that-scales/

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

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