it-swarm.asia

التحضير لارتفاع ضخم في حركة المرور

ستظهر شركتنا في برنامج تلفزيوني في وقت الذروة هذا الأسبوع ، وقد أخبرونا أنه يمكننا توقع حوالي 200000 زائر على موقعنا على الإنترنت دفعة واحدة.

عادةً ما نحصل على حوالي 100 زيارة فقط يوميًا ، لذلك ليس لدي فكرة عما إذا كنا نستطيع التعامل مع هذا العدد الكبير من الزيارات. نحن مستضافون بواسطة 1and1.co.uk.

هل هناك أي احتياطات يمكننا اتخاذها لمنع تعرض موقعنا للشلل؟

35
SamTheMan

خلال فترة الازدحام الشديد ، يجب أن يكون الخادم الخاص بك قادرًا على معالجة جميع الطلبات التي يقدمها زائرو موقعك الإلكتروني. ولكن هناك بعض القيود في الاتصالات المتزامنة التي تتم معالجتها بواسطة الخادم. لذلك من الأفضل تقديم طلبات الصفحة بأسرع وقت ممكن.

فيما يلي بعض الاقتراحات التي يجب مراعاتها في هذه الحالات ،

تحسينات مستوى التطبيق:

1. تقليل طلبات HTTP إلى تسريع أوقات تحميل الصفحة.

الجمع بين جميع ملفات JS معًا في ملف JS واحد مدمج ، وجميع ملفات CSS في ملف CSS واحد موحد.

ب) تصغير ملفات JS و CSS ، وبالتالي سيتم تقليل حجم الملف وسيتم تنزيله بشكل أسرع.

c) استخدم CSS Sprites - عند دمج معظم أو كل صورك في Sprite ، يمكنك تحويل طلبات صور متعددة إلى واحدة فقط. ثم يمكنك فقط استخدام خاصية CSS ذات الصورة الخلفية لعرض قسم الصورة الذي تحتاجه.

د) تأخير تنزيل الصور مع التحميل البطيء ، سيكون هذا مفيدًا في تقليل طلبات http.

2. إعداد صفحات خفيفة الوزن والتي تتوقع المزيد من الزيارات:

أ) استبعاد العناصر الزخرفية مثل الصور أو الفلاش كلما كان ذلك ممكنًا ؛ استخدام النص بدلاً من الصور في التنقل في الموقع و chrome ، ووضع معظم المحتوى في HTML.

ب) استخدام صفحات HTML ثابتة بدلاً من الصفحات الديناميكية ؛ المكان الأخير تحميل أكثر على الخوادم الخاصة بك. يمكنك أيضًا تخزين المخرجات الثابتة للصفحات الديناميكية لتقليل حمل الخادم.


تحسينات مستوى الخادم:

1. قلل من قيم مهلة الخادم من خلال استشارة مزود الاستضافة الخاص بك (لا ينبغي أن يكون منخفضًا جدًا).

عند انخفاض المهلات ، سيتم إصدار الاتصال قريبًا ، لذلك سيكون الخادم قادرًا على التعامل مع المزيد من الاتصالات.

2. استخدام خدمات الجهات الخارجية مثل CloudFlare للتخزين المؤقت للبيانات الثابتة ، وحماية موقع الويب الخاص بك من المستخدمين الضارين والهجمات مثل DDOS.

. ترقية أجهزة الخادم الخاص بك - ترقية الذاكرة الفعلية والظاهرية ، وزيادة عمليات الإدخال/الإخراج وحدود العمليات ، إذا لزم الأمر. سيكون مزود الاستضافة الخاص بك قادرًا على مساعدتك بشكل أفضل.

4. رمز ذاكرة التخزين المؤقت الديناميكي - استخدم APC للتخزين المؤقت PHP شفرة تشغيل.

5. تحميل موازنة - توزيع الحمل عبر عدة خوادم موازنة التحميل.


  • عندما يتم اتخاذ جميع الإجراءات المطلوبة ، حان الوقت الآن للتحقق مما إذا كان موقع الويب جاهزًا لارتفاع كبير في عدد الزيارات.

    هناك بعض خدمات الجهات الخارجية مثل loadimpact.com التي توفر اختبار الحمل باستخدام حركة مرور محاكية. سيساعدك التحليل على فهم مقدار التحميل الذي يمكن لموقع الويب التعامل معه وما الذي يمكن تحسينه.

  • أيضًا ، خلال فترة زيادة حركة المرور ، تجنب عمليات استخدام وحدة المعالجة المركزية عالية مثل cronjobs النسخ الاحتياطي موقع الويب إلخ.

26
Nikhil Supekar

بادئ ذي بدء ، أود أن أوصي Cloudflare. يمكنك إنشاء حساب أساسي مجاني وسيتم توجيه حركة المرور عبر مراكز البيانات المحلية لتقليل مقدار القفزات الخادم. تعتبر Cloudflare رائعة أيضًا لمحتوى التخزين المؤقت ولديها حماية DDOS.

بخلاف ذلك ، حاول تقليم الدهون من طبقة الخدمة الخاصة بك. تأكد من عدم وجود أي استعلامات مفرطة لقاعدة البيانات تضخّم الشفرة ، أو أي منطق مكثف لوحدة المعالجة المركزية يمكن تبسيطه.

حاول أيضًا تخزين أي استعلامات قاعدة بيانات. بعض الخيارات الرائعة لاستعلام التخزين المؤقت هي Redis أو Memcache. OpCaching هو اعتبار آخر إذا كنت تستخدم لغة غير مترجمة.

ولكن ربما يكون الأهم هو الحفاظ على المحتوى الثابت الخاص بك (أي css و js والصور) على النحو الأمثل. تصغير كل ما تبذلونه من جافا سكريبت ، والجمع بينهما في ملف واحد إذا كان ذلك ممكنا. تذكر أن كل ملف مضمن في موقعك ، يجب أن يجعل العديد من خادم القفزات للوصول إلى المستخدم النهائي.

لا تقلل من مقدار عرض النطاق الترددي وزمن التحميل الذي يمكنك توفيره من خلال ضغط الصور أيضًا!

أخيرًا ، فكر في مراقبة الأداء باستخدام أدوات مثل New Relic.

حظا سعيدا !!

المصدر: أحد مطوري الموقع الثاني عشر الأكثر شعبية في المملكة المتحدة وفقًا لـ Alexa.

7
Ewan Valentine

النظر في اختبار الحمل موقعك. هناك أدوات مجانية متوفرة مثل JMeter و The Grinder و Gatling ، والتي يمكن أن تحاكي أعدادًا كبيرة من زوار موقعك.

باختبار تأثير حركة المرور الكثيفة في وقت مبكر ، يمكنك تحديد ما إذا كان أي توليف قمت به فعالاً ، والنظر في مزيد من الضبط إن لم يكن.

5
James_pic

إذا كنت تستخدم 1and1 ، فمن المحتمل أنك تبحث عن استضافة رخيصة. استضافة رخيصة يعني أنك تميل إلى القيام بكل شيء تحت مربع واحد. تتمثل نقطة الألم الرئيسية للاستضافة في أنه عندما تستضيف كل شيء في المربع نفسه ، فإنك تقسم الموارد بين أجزاء مهمة من موقعك:

  • خادم الويب الخاص بك (Apache ، Nginx ، إلخ)
  • قاعدة البيانات الخاصة بك (MySQL ، PostGreSQL ، إلخ)

كونك 1 و 1 هناك فرصة جيدة لأنك تستخدم لوحة تحكم مثل Plesk أو cPanel ، مما يعني أن لديك طبقة إضافية من الأشياء تتنافس على الموارد. والمسامير النهائي في نعشك؟ ليس لديك الكثير من الموارد. ربما لديك وحدة المعالجة المركزية 1 (أو وحدة المعالجة المركزية الافتراضية) والقليل جدا RAM (إذا كان لديك أكثر من 2GB سأفاجأ).

عندما تخلصنا من 1and1 ، ذهبنا مع مزود استضافة قابل للتطوير (خدمات الويب من Amazon في حالتنا) وفعلنا العديد من الأشياء التي لم نتمكن من قبل

  1. يوجد لدى Amazon مثيلات خاصة بها لقواعد البيانات (RDS) ، وبالتالي فإن قاعدة بياناتنا تحتوي على موارد للتنفس. معظم أنظمة RDBMS تعيش وتتنفس على RAM وهذا شيء يمكننا الحصول عليه. يمكنك الآن تزويد محركات أقراص الحالة الثابتة بإدخال/إخراج عالي أيضًا ، مما يجعل نقطة الاختناق الأخرى (كتابة البيانات) أقل إيلامًا.
  2. لقد حصلنا على موازن التحميل مع خادمي الويب. مع خلفية DB ضخمة ، لم نكن نحتاج إلى نهايات أمامية متطورة ، لذا حصلنا على خادمين منخفضي النهاية.
  3. لقد تحولنا إلى شيء يمكن أن يجلب آلات مكتملة التكوين حسب الطلب. باستخدام شيء مثل Chef أو Puppet ، يمكنك بسهولة إضافة خوادم ويب جديدة وشفافة بنسبة 100 ٪ للمستخدمين النهائيين إذا تم ذلك بشكل صحيح. يحتوي AWS أيضًا على Opsworks حتى تتمكن من إنشاء البرامج النصية مباشرةً في AWS.
  4. تغيير حجم المثيل الخاص بك على الطلب. هذه هي قطعة رئيسية بالنسبة لنا. إذا تعثرت قاعدة البيانات ، فيمكنني إحضارها وإعادة تشغيلها كواحدة أكبر في بضع دقائق. نعم ، سيتطلب ذلك تعطلًا ولكن بضع دقائق من التوقف أفضل من ساعات الموقع البطيء للغاية. خائفة تماما من التوقف؟ احتفظ بنسخة متماثلة للقراءة في الأجنحة ، ثم اسحبها ، قم بالتبديل إلى مثيل أكبر ، قم بالترقية لإتقانها وتجنب أي تعطل مقابل تكلفة جهاز إضافي.

AWS ليست اللعبة الوحيدة في المدينة (Azure ، Rackspace ، وما إلى ذلك) ولكن تأكد من قدرة 1and1 على تلبية احتياجاتك.

3
Machavity

لم تحدد "جميعها مرة واحدة" جيدًا. لنفترض أنك تبحث عن 200000 زائر فريد في نصف ساعة. هذا هو 111 طلبًا في الثانية ، مع عدم مراعاة الزائرين الذين ينقرون ويفتحون المزيد من الصفحات (التي تريدها ، أليس كذلك؟).

أول شيء أود فعله هو قصص Google عن أشخاص يتعاملون مع كميات مماثلة من الحركة. سوف يكتب الكثير من الناس عن تجاربهم على مدوناتهم لمساعدة الآخرين. ستلاحظ أنه من الصعب للغاية العثور على قصة حول قيام شخص ما بذلك على الاستضافة المشتركة ، وهناك سبب لذلك. ابحث في حلول مثل Digital Ocean أو Amazon Web Services ، بالنسبة للمبتدئين ، باستخدام أقرب مركز بيانات لجمهورك. وأنا أوافق على أن تفريغ جميع الموارد الثابتة الخاصة بك إلى CloudFlare ، حتى حساب مجاني ، هو فكرة ممتازة.

بصرف النظر عن ذلك ، اختبر الكود الخاص بك عن طريق إضافة نصوص توقيت إلى أعلى وأسفل صفحاتك ، بافتراض أنها ديناميكية. على افتراض أن افتراضاتي حول الأرقام صحيحة ، ستحتاج إلى أن تكون قادرًا على تقديم كل صفحة في أقل من 10 مللي ثانية للحفاظ على أي نوع من الأداء المقبول. إذا كنت تقدم جميع الطلبات عبر SSL افتراضيًا ، فقم بتعطيلها لبضعة أيام أثناء مرور العاصفة.

أيضًا ، يبدو 200،000 مخيفًا جدًا ، لكن ضع في اعتبارك أنك لا تحتاج إلى أن تكون أيضًا خائفًا خائفًا (رغم أنك يجب أن تكون كذلك). على سبيل المثال ، عندما نشرت مجلة Paper NSFWصورًا لكيم كارداشيان ، استغرق الأمر أربعة خوادم ويب متوسطة الحجم و Amazon ELB فقط للتعامل مع الحمل ، وفقًا لهذه المقالة (SFW) . بالتأكيد لا أعتقد أن الإعداد الحالي الخاص بك سوف يتعامل معها ، لكن لا ينبغي عليك تحديد ستة عشر خادمًا مزودًا بـ 48 مركزًا تعمل كل منها بواسطة مولدها النووي الصغير.

1
John Cave

تحقق مع مزود خدمة الإنترنت الخاص بك ومعرفة ما إذا كان هناك غطاء على عرض النطاق الترددي الخاص بك. قم بترقية خطة الاستضافة الخاصة بك إذا كان النطاق الترددي غير كافٍ لمقدار الحركة التي تتوقعها. لا تريد إظهار رسالة "تجاوز حد النطاق الترددي" لك للزائرين.

1
Salman A

تعرف على هذا السؤال القديم ، ولكنه جيد جدًا وأتمنى لو كان لدي معلومات جيدة عن الموضوع قبل سنوات قليلة ...

من وقت لآخر ، لدينا (نشاط متعلق بالمدرسة) مواقع مميزة على شبكات التلفزيون. نظرًا لأننا نعمل بميزانية محدودة جدًا ، فإن "موازنة التحميل" هي الحل. يمكن أن تكون صناديق VPS رخيصة إلى حد كبير هذه الأيام ، ونحن فقط نعكس/نكرر المحتوى الخاص بنا في 2-3 منها.

انظر إلى هذا المقال وقراءة حول "جولة روبن".

يمكن العثور على مزيد من المعلومات حول اختبار الحمل هنا .

عندما بدأنا في محاولة التعامل مع الطفرات لأول مرة ، كان لدينا ببساطة محتوى في مربعات VPS 2-3 ووضعنا NS في إعدادات المسجل.

1
Woody

من تجربتي الشخصية ، عرفت أنه حتى أفضل VPS له حدوده. أنا ذاهب للشخص العادي الحقيقي هنا.

تم استضافة أحد مواقعنا الرياضية على VPS. خلال مباراة بين باكستان والهند ، تلقينا أكثر من 70000 زيارة. كان لدينا Vm Inmotinghosting مع 4GB RAM و 2. شيء GHz معالجة ، عرض النطاق الترددي 1TB ، تخزين SSD وغيرها من الأشياء الفاخرة التي تأتي جنبا إلى جنب. كان لدينا نسخة مدفوعة من Cloudflare تفعيلها كذلك.

لقد مر نصف الطريق خلال المباراة وتراجع الموقع. لم يحدث ذلك مطلقًا أثناء المباراة وفقدنا أكثر من 70،000 زائر. لقد عرفنا لاحقًا أن النطاق الترددي الخاص بنا قد تم استهلاكه وبدون أن لا يعمل المضيف المصدر ، فإن CDN تكون في معظم الأحيان غير مجدية.

الدرس: إلى جانب الحصول على VPS وضبط في CND مثل Cloudflare ، قلل من حجم صفحتك. أقل هو الأفضل. يمكنك الاستفادة من التخزين المؤقت للصفحة وتصغير الرمز الذي يكون مفيدًا جدًا في التعامل مع حركة المرور.

1
imranhunzai

حظا سعيدا في إعادة كتابة موقع الويب الخاص بك ، وتحويل مقدمي الخدمات وترحيل المحتوى إلى شبكة CDN في أقل من أسبوع.

نظرًا لأنك ربما تكون قد أدركت من الإجابات الأخرى ، فهذه هي الحد الأدنى من الأشياء التي تحتاج إلى القيام بها حتى يصبح موقعك جاهزًا لزيادة كبيرة في عدد الزيارات. على الرغم من أنك إذا كنت تعمل حاليًا على 1and1.co.uk ، فربما لا يوجد لديك فريق قوي من مهندسي الشبكات و DBAs والمبرمجين ومُحسِّن الواجهة الأمامية الذين يعملون لديك.

ليس من المرجح أن يحدث ، أليس كذلك؟

أنت لم تقل ما تفعله مع موقع الويب الخاص بك ، سواء كان يعمل عربة التسوق أو ما إذا كان يمكن تنفيذها مع محتوى ثابت. إذا كانت الحالة الأخيرة ، فقد تنجو من تسونامي إذا كشطت الموقع بأكمله في ملفات ثابتة ونشرتها بدلاً من الموقع العادي (قم بنسخ النسخة الحالية أولاً).

يجب عليك أيضًا التحدث إلى 1and1 (مع وجود بطاقة الائتمان الخاصة بك في متناول اليد).

0
symcbean

الأفضل هو أن يكون لديك خوادم مخصصة متعددة المجموعات ستحل مشكلتك

0
Himanshu Singla