أخطاء "عشوائية" 502

لديك تثبيت لـ Discourse يعمل على خادم GCE. أبلغ المستخدمون عن مشاكل في النظام حيث يعيد أحيانًا أخطاء 502 بشكل عشوائي. يمكنني تكرار هذه الحالة بالنقر على روابط “الأحدث”، “الجديد”، “غير المقروء”، “الأعلى تصنيفًا”، و"الفئات". عاجلاً أم آجلاً، سيعود أحد هذه الروابط بخطأ 502.

لقد تفحصت سجلات خادم الوكيل الخاص بي، وهي تسجل مدخلات مثل هذا للروابط التي فشلت:
“upstream prematurely closed connection while reading response header from upstream”. هناك كمية كبيرة جدًا من هذه الأخطاء، لروابط تبدو عشوائية.

إليك الخطوات التي اتخذتها لمحاولة حل المشكلة بناءً على مشاركات قرأتها:

  • ترقية نظام التشغيل
  • ترقية Docker
  • ترقية Discourse
  • إعادة تشغيل الخادم

تم التثبيت الأصلي باستخدام دليل إعداد Docker Cloud. ثم اتبعت دليلًا للتبديل إلى استخدام S3 للنسخ الاحتياطية والصور.

يعمل خادمي بنظام:
Ubuntu 14.04.6 LTS (GNU/Linux 4.4.0-148-generic x86_64)

وفقًا لـ discourse-doctor:

     DOCKER VERSION: Docker version 18.06.3-ce, build d7080c1

==================== MEMORY INFORMATION ====================
RAM (MB): 4820

             total       used       free     shared    buffers     cached
Mem:          4707       2206       2501        140        101        948
-/+ buffers/cache:       1156       3550
Swap:         2047          0       2047

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   33G   15G  70% /
/dev/sda1        50G   33G   15G  70% /var/lib/docker

==================== DISK INFORMATION ====================

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *       16065   104856254    52420095   83  Linux
Partition 1 does not start on physical sector boundary.

==================== END DISK INFORMATION ====================

لقد شغلت أمر top وراقبت أرقام المعالج والذاكرة ولم أرَ أي شيء مقلق. لقد نظرت في السجلات ولم أرَ أي شيء يشير إلي إلى المشكلة.

هل هناك أي تفاصيل أخرى يمكنني توفيرها للمساعدة في تشخيص المشكلة؟ ما هي الخطوات التي يجب اتخاذها لتتبع ذلك؟

شكرًا لك،

ستيفن

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

It could be that Postgres needs a bit more memory. You’ve got plenty, so you might bump db_shared_buffers to 1024MB. You might also bump db_work_mem to 80MB.

Thank you for the suggestion. I made both of those changes in the yml file. Restarting the app didn’t seem to make a difference, so I ended up rebooting the server. Unfortunately I can still replicate the problem.

You need to rebuild or

cd /var/discourse
./launcher destroy app
./launcher start app

for the changes to take effect.

And, this might not be a silver bullet, but I have seen it help.

إعجابَين (2)

So far so good, we’ll monitor and see how this helps. Thank you!

إعجابَين (2)