it-swarm.asia

ما مدى جودة ووردبريس؟

باستخدام WordPress الجديد وميزاته الجديدة ، يبدو أن WordPress قادر على أكثر من مجرد محرك مدونة بسيط. لكن ما مدى جودة استخدام WordPress بواسطة 10k -> 100k من المستخدمين يوميًا؟

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

34
googletorp

بشكل واضح لا شيء يحجم وكذلك الملفات الثابتة التي يخدمها خادم ويب سريع وأي CMS عليه معرفة ما يتم تحميله ثم تحميله لن يعمل بشكل جيد ، WordPress أو غير ذلك. تتمثل إحدى المشكلات في عدد استعلامات قاعدة البيانات المطلوبة لكل طلب عنوان URL وتجربتي السابقة في العمل حصريًا مع Drupal والآن 2+ سنوات مع WordPress هي أن WordPress أفضل بكثير في هذا القسم.

ومع ذلك ، لا شيء تقريبًا مع أي قوة سيتم توسيع نطاق "خارج الصندوق"؛ كل شيء يدور حول ما الذي يمكنك فعله كلما زادت احتياجاتك؟

في النهاية المنخفضة لـ {"الكثير من حركة المرور" يوجد مكوِّنات إضافية رائعة للتخزين المؤقت و تكاملات مع شبكات CDN غير مكلفة يمكنك القيام بعمل جيد جدًا على عدم استخدام تكنولوجيا المعلومات ميزانية وميزانية استضافة منخفضة. فيما يلي بعض الأسئلة والأجوبة الأخرى للمراجعة:

هناك خيارات لـ التشكيل الجانبي لتحديد اختناقات الأداء :

بمجرد تحديد الاختناقات ، يمكنك القيام التحسين المحلي مع أشياء مثل API Transients . يقدم Q&A هذا مثالًا يمكن تحسينه باستخدام Transients API ويوضح كيف:

إذا كنت ترغب في الحصول على سحب الأسلحة الكبيرة يمكنك تكوين Memcached ، HyperDB ، Nginx و/أو أكثر للسرعة الأمور (يبدو أن الأخير يتطور حقًا إلى طريق الحصول على قابلية مذهلة للتطوير من WordPress):

وأخيرًا هناك خوادم الويب الناشئة التي تركز على WordPress والمتخصصة في الأداء مثل WP Engine ، ZippyKid و اخرين:

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

(على الأقل IMO. :)

37
MikeSchinkel
  1. لا تتوقع الكثير من الاستضافة المشتركة - لا تلوم WordPress على البطء إذا كنت مضيفًا مشتركًا. قد تحشد المضيفين المشتركين حسابات 1000s في خادم واحد. لذلك يمكنك قضاء كل يوم في تحسين حساب بقيمة 10 دولارات شهريًا ولن يكون ذلك أمرًا مهمًا. احترس أيضًا من الكلمات التسويقية الطنانة - لمجرد أنها تقول "سحابة" لا تعني أنك لا تشارك خادم واحد مع 100 أو 1000 شخص.

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

  3. الشيء الرئيسي الذي يجعلك بطيئًا هو استعلامات MySQL البطيئة ، ولا ينبغي أن يسبب لك WordPress المتاعب في هذه المشكلة. ومع ذلك ، اضطررت إلى "تحديد" استفسارات التعليقات الخاصة بي لأنه كان لدي أكثر من 50000 تعليق. (هل هذا ثابت حتى الآن؟) أيضًا ، إذا كنت تفعل أي شيء غير عادي (مثل 1000s من الفئات؟) يمكن أن يكون مشكلة أيضًا.

  4. أستخدم Linode 512 مع NginX و "top" يعرض PHP و NginX يقومان بعملهما في أقل من 1/100 من الثانية لكل طلب. تقريبا كل وقت وحدة المعالجة المركزية مرتبط مع الخلية. يمكنك تقديم مليون صفحة شهريًا باستخدام Linode بقيمة 20 دولارًا ، ولكن بمجرد البدء في إضافة المكونات الإضافية والصور ، أعتقد أنك ستحتاج إلى Linode "1GB". من وجهة نظري ، تكون خطية إلى حد كبير: إذا كانت مرات مشاهدة الصفحة مزدوجة ، فما عليك سوى مضاعفة حجم Linode.

إخلاء المسئولية: أنا لا أعمل مع Linode.


قم بالتحديث (بعد عامين تقريبًا) لأنك تريد تخزين أجزاء من الصفحة مؤقتًا باستخدام PHP ، إليك حل بسيط أستخدمه بسرعة مذهلة. أقوم بتخزين عدة أجزاء/أجزاء منفصلة لكل صفحة في غضون 1/100 من الثانية. يبدو أن أداة ramdisk يمكن أن تجعل هذا الأمر أسرع ولكنه سريع للغاية بالنسبة لاحتياجاتي:

$cache_file = "./cache/portion-1". $since; // maybe round() this $since timestamp
$cache_life = 1000; // seconds to keep this cached
$filemtime = filemtime($cache_file);  // returns FALSE if file does not exist
if (!$filemtime or (time() - $filemtime >= $cache_life)) {

    // heavy lifting starts
    $output = 'Heavy!';
    // heavy lifting ends

    if (!file_put_contents($cache_file,$output,LOCK_EX)) { echo 'error'; } // save the cache    
    echo $output;

} else { 

    // load from cache
    $output = file_get_contents($cache_file); 
    echo $output;        
} 
4
PJ Brunet

هناك في النهاية 3 أشياء تبطئ WordPress على نطاق واسع ، وهي تتلخص في هذا:

  • كومة الاستضافة - تحتاج إلى مضيف جيد مع أحدث البرامج - PHP تعد كل من 7 و Nginx و Varnish و Redis و fail2ban و PerconaDB خيارات جيدة
  • لا توجد عمليات مسح للجدول - تتم كتابة العديد من المكونات الإضافية بواسطة المبرمجين الهواة الذين لا يعرفون حتى ما هو فحص الجدول. هناك حاجة إلى شيئين لتجنب تفحص الجدول - فهرس يمكن استخدامه واستعلام مكتوب بطريقة يمكنه من خلالها استخدام الفهرس
  • لا يوجد أي عدد قليل من استعلامات SQL داخل PHP حلقات - تم اختبار بعض رموز المكون الإضافي بشكل واضح فقط على مواقع صغيرة ، ولسبب أو لآخر سيتم تنفيذ كل منتج في قاعدة البيانات الخاصة بك وإجراء اتصال SQL جديد لكل منتج /بريد. من الناحية المثالية تريد أقل من 100 استعلام SQL لكل صفحة - يبدو هذا كثيرًا ، لكنه ليس بالفعل ، ومع <100 ستحصل على TTFB من حوالي 200ms غير مفصول.

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

إذا كنت بحاجة إلى التوسع ، فيمكنك إنشاء كتلة باستخدام PerconaDB XtraDB لقاعدة البيانات و Unison للملفات. وبهذه الطريقة ، يمكن أن يكون لديك عقدة واحدة مثل wp-admin و cron runner ، والعُقد الأخرى التي تخدم حركة مرور الويب خلف موازن التحميل.

0
Dave Hilditch