إعادة البناء تستغرق حوالي 3 ساعات

أنا أقدر ذلك، لكن إعادة بناء التطبيق تستغرق حوالي 3 ساعات!
وهذا على خادم افتراضي خاص ضخم.
ألن يكون من الرائع أن نتمكن من إزالة الإضافات بنفس الطريقة التي يمكننا بها إضافة وإزالة السمات؟

ربما شيء يجب مراعاته كميزة في المستقبل؟
شكرا!!

إعجاب واحد (1)

آسف؟! يجب أن يستغرق الأمر ~20 دقيقة؟!

إعجاب واحد (1)

:person_shrugging: ليس هنا
استغرق التثبيت الأصلي ساعتين.

الآن، اختفى ./launcher rebuild app على النحو التالي:

Ensuring launcher is up to date
Fetching origin
Updating Launcher...
Updating eeefdde..30be122
Fast-forward
 image/base/install-imagemagick             | 5 ++++-
 launcher                                   | 2 +-
 templates/web.letsencrypt.ssl.template.yml | 2 +-
 templates/web.template.yml                 | 6 +++---
 4 files changed, 9 insertions(+), 6 deletions(-)
Launcher updated, restarting...
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 60 app
app
Unable to find image 'discourse/base:2.0.20220818-0047' locally
2.0.20220818-0047: Pulling from discourse/base
1efc276f4ff9: Pulling fs layer
1b880e64942b: Pulling fs layer
794f6dc9a2ff: Pulling fs layer
1efc276f4ff9: Verifying Checksum
1efc276f4ff9: Download complete
1efc276f4ff9: Pull complete
794f6dc9a2ff: Verifying Checksum
794f6dc9a2ff: Download complete
1b880e64942b: Verifying Checksum
1b880e64942b: Download complete
1b880e64942b: Pull complete
794f6dc9a2ff: Pull complete
Digest: sha256:7734701087766821ffb2ddcef423754798bd345c2ac0d550131c6e6905c268e8
Status: Downloaded newer image for discourse/base:2.0.20220818-0047

وبعد السطر الأخير، يستمر في الوميض (العملية مستمرة)
هذا منذ حوالي 30 دقيقة.
في المرة الأخيرة التي قمت فيها بذلك، استغرقت 160 دقيقة كاملة.

إجمالي ذاكرة الخادم: 4.657GiB، إصدار النواة: 5.15.0-43-generic، نظام التشغيل: Ubuntu 22.04 LTS، قرص SSD بسعة 50 جيجابايت، 2.5 أنوية، 5 خيوط معالجات Intel® Xeon®


لست متأكدًا مما قد يكون خطأ في ذلك، بخلاف أنه يستغرق وقتًا طويلاً جدًا :confused:

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

هناك “توقفات مرئية” في تسجيل البناء، وهذا طبيعي، لكن هذا التأخير ليس كذلك.

أعتقد أنك تبدأ في استخدام الـ swap أثناء البناء بطريقة ما، لكنني لست خبيرًا في الأنظمة. هل تقوم بتشغيل أي شيء آخر على هذا الجهاز؟

تتطلب التنزيلات فك الضغط، وهذا مكلف حسابيًا، ولكنه نفس الصور للجميع.

للمرجع، لقد أعدت بناء موقع الآن للتو واستغرق الأمر 13 دقيقة و 46 ثانية على جهاز 2 جيجابايت 2vCPU على https://scaleway.com

4 إعجابات

لا، هذه آلة افتراضية خاصة (VPS) مخصصة لمثيل Discourse هذا فقط. وأقوم بتشغيل العديد من الأجهزة الافتراضية الخاصة الأخرى مع نفس الشركة، وجميعها تعمل بسلاسة فائقة (ولكنها ليست مثيلات Discourse، بل هي تطبيقات أخرى مثل مثيلات PHP مخصصة أو مثيلات نظام إدارة المحتوى WP/CP وما إلى ذلك).

لست على علم بأي استخدام للمبادلة (swap)، ولا يمكنني رؤية أي ارتفاعات في استخدام الموارد قد تبرر ذلك.
الآن هي في وضع building.... - يبدو أنها أسرع قليلاً من المرة الأخيرة، ومع ذلك، لا تزال تستغرق أكثر من 20 دقيقة بوضوح.

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

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

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

وضع مشابه جدًا لما هو عليه الحال مع Varnish على سبيل المثال.

إعجاب واحد (1)

حسناً…

بالمناسبة، لقد تحققت من فريق الخوادم وبالفعل وصلنا إلى 100% من الذاكرة.

5 جيجابايت؟؟؟ 5 جيجابايت من ذاكرة الوصول العشوائي هي كمية كبيرة جداً للاستهلاك لأي شيء حقاً.
متطلبات discourse تقول إنها تحتاج إلى 1 جيجابايت من ذاكرة الوصول العشوائي!

وهي الآن عالقة على ما يلي:

104:M 04 Oct 2022 07:19:27.251 # Redis is now ready to exit, bye bye...
sha256:662695076506add39a630c2169b8b618f0121386951e93c6ffd2a6473107ae55
f4a95a1e69d5375e6ea30dfb22576209d249e5bc67b04a6fa09df289b1441888
Removing old container
+ /usr/bin/docker rm app
app

وبالتالي لا يمكنني حتى ترقية الخادم لأن العملية ستتوقف.

حقاً، لا أعتقد أن هذه مشكلة خادم على الإطلاق. إذا كنا نحتاج إلى 1 جيجابايت، فيجب أن تكون 5 جيجابايت أكثر من كافية.
هناك خطأ في هذا، خطأ فادح.
أتفهم أن الآخرين يجب أن يكون لديهم تجربة أفضل (بالنظر إلى @merefield الذي قال بالترقية على 2 جيجابايت…) ومع ذلك فهي لا تعمل معنا كما ينبغي.

على أي حال، هذا خارج الموضوع في هذا الموضوع على ما أعتقد.

إعجاب واحد (1)

لقد قمت للتو بإعادة بناء موقع آخر، 4 جيجابايت، 3vCPU، مرة أخرى أقل من 15 دقيقة (أي أن الذاكرة/وحدة المعالجة المركزية الإضافية لم تساعد كثيرًا في حالتي، ولكن لا يزال بعيدًا عن ساعات!).

الشيء الوحيد الذي لاحظته للتو هو أن خادم VPS الخاص بي يستخدم vfs بدلاً من aufs أو overlay المقترحة.
ومع ذلك، وفقًا لهذا https://meta.discourse.org/t/cant-run-launcher-rebuild-app-docker-storage-driver-is-unsupported/56927/45، لا ينبغي أن يكون ذلك شيئًا مهمًا، وبالتالي نقوم بتشغيل المشغل باستخدام --skip-prereqs، لأنه بخلاف ذلك لا يمكننا حتى تشغيل Discourse.

أتساءل عما إذا كان هناك المزيد حول متطلبات مشغل التخزين هذا.

إعجاب واحد (1)

هذا إيجابي للغاية. لأغراض الاختبار قد يكون كافياً، وقد يكون ضيقاً بعض الشيء حتى في ذلك الحين. 2 جيجابايت أقرب إلى الواقع بكثير.

4 جيجابايت كافية للحالات الأكبر، رغم ذلك. لكن عدد وقوة الأنوية تلعب دوراً مهماً أيضاً.

ومع ذلك… إذا كان لديك 5 جيجابايت ويستغرق إعادة البناء وقتاً طويلاً، فيجب أن يكون هناك خطأ ما.

أنا على DigitalOcean/4 جيجابايت/2 معالج Intel vcpu وإعادة البناء تستغرق حوالي 25 دقيقة.

ما هو نظامك بالضبط، بالإضافة إلى app.yml - هل هناك شيء مخصص؟

مرحباً، التخصيص الوحيد هو ما ذكرته سابقاً (vfs بدلاً من aufs/overaly)
الباقي قياسي.

الخادم:
إجمالي ذاكرة الخادم: 4.657GiB، إصدار النواة: 5.15.0-43-generic، نظام التشغيل: Ubuntu 22.04 LTS، قرص SSD بسعة 50 جيجابايت، 2.5 نواة، 5 خيوط معالجات Intel® Xeon®

ملف yaml أصلي باستثناء هذه الإضافات:

discourse-assign
discourse-chat
discourse-checklist
discourse-docs
discourse-reactions
discourse-solved
discourse-surveys
discourse-voting
docker_manager
styleguide

لا أرى من تلك البيانات سبب استغراق إعادة البناء كل هذا الوقت.

سأقوم بتشغيل نفس حجم خادم افتراضي خاص (VPS) يعمل بنظام Ubuntu في مكان آخر. فقط لمعرفة ما إذا كانت المشكلة تأتي من شركة الاستضافة. سيكلفك بضعة دولارات ووظيفة تستغرق ساعة أو ساعتين.

الكثير من الذاكرة مطلوبة لتجميع جافاسكريبت مسبقًا. حاول إضافة مبادلة.

الطبقة

أعتقد أن هذا الاختبار قد يكون موجودًا لسبب ما. قد تكون هذه مشكلتك.

إعجاب واحد (1)

لماذا تحتاج 5 جيجابايت من ذاكرة الوصول العشوائي مع Discourse العادي إلى مبادلة إضافية إذا كانت الأجهزة الأصغر راضية تمامًا بما حصلت عليه تلقائيًا؟

لأن ذلك أسهل من القيام بما تحتاج إليه حقًا.

قد يساعد إضافة مساحة مبادلة، لكنها ليست مشكلتك الأكبر.

3 إعجابات

أفترض أنه كان يجب أن أجرب هذا قبل نشر حاوية discourse: How to change the Docker storage driver – Webdock

من الواضح أنه من الممكن تغيير مشغل التخزين - على عكس ما أبلغني به المضيف عندما نشرنا الحاوية (والذي كان إما تحرير ملف المحمل أو تجاهل الفحص)

يا إلهي، الآن فات الأوان على ما أعتقد.

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

لا أعتقد ذلك.

بالإضافة إلى ذلك، قلل إعداد الحاويتين من وقت التعطل حيث تقوم بإعادة بناء حاوية الويب الجديدة بينما تستمر الحاوية القديمة في العمل.

إعجاب واحد (1)

ما هو حجم موقعك؟ سأضيف مبادلة بغض النظر لمعالجة مشكلة الذاكرة.

مثيل فارغ بسعة 1 جيجابايت مع مبادلة بسعة 1 جيجابايت يعمل بشكل جيد لمجتمع اختبار صغير، ولكن بمجرد نموه، لن يكون ذلك كافيًا. المبادلة تحدث فرقًا بالتأكيد.

إذا كانت إعادة البناء على خادم افتراضي خاص “ضخم”، يقع في مركز بيانات مزود باتصال إنترنت قوي، تستغرق 3 ساعات، وإعادة بناء تثبيتي على https://discourse-on-a-pi.falco.dev الذي يعمل على لوحة بحجم بطاقة ائتمان على مكتبي، ومتصل بالإنترنت عبر خطة منزلية قياسية في بلد نامٍ تستغرق 14 دقيقة فقط (+4 دقائق عند وجود صورة حاوية جديدة) فهناك خطأ ما في المنتج الذي يبيعونه لك…

15 إعجابًا

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

إذا كان الأمر كذلك، أقترح عليك تعطيل أي شيء آخر قد يكون قيد التشغيل على الخادم مؤقتًا إن أمكن.

3 إعجابات