يستغرق Precompiling assets 20 دقيقة

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

I, [2024-01-10T16:07:58.323464 #1]  INFO -- : cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
110:M 10 Jan 2024 16:08:52.047 * 100 changes in 300 seconds. Saving...
110:M 10 Jan 2024 16:08:52.048 * Background saving started by pid 3276
3276:C 10 Jan 2024 16:08:52.384 * DB saved on disk
3276:C 10 Jan 2024 16:08:52.386 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
110:M 10 Jan 2024 16:08:52.449 * Background saving terminated with success
Purging temp files
Bundling assets
MaxMind IP database updates require a license
Please set DISCOURSE_MAXMIND_LICENSE_KEY to one you generated at https://www.maxmind.com
MaxMind IP database updates require a license
Please set DISCOURSE_MAXMIND_LICENSE_KEY to one you generated at https://www.maxmind.com
I, [2024-01-10T16:12:14.362017 #3300]  INFO -- : Writing /var/www/discourse/public/assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js

هنا نرى أن ember (العمود 12) يستخدم 2.5 جيجابايت من ذاكرة الوصول العشوائي (العمود 6) وأكثر من وحدة معالجة مركزية واحدة (العمود 3)

# ps auxfc|egrep -A29 containerd
root      1097  0.2  0.5 1510892 44924 ?       Ssl  16:00   0:01 containerd
root      4507  0.1  0.0 717892  7556 ?        Sl   16:03   0:00  \_ containerd-shim
root      4530  0.1  0.3 312292 30512 ?        Ssl  16:03   0:00      \_ pups
systemd+  4609  0.0  0.3 213236 28608 ?        S    16:03   0:00          \_ postmaster
systemd+  4617  0.0  0.8 213340 67288 ?        Ss   16:03   0:00          |   \_ postmaster
systemd+  4618  0.0  0.0 213236  5876 ?        Ss   16:03   0:00          |   \_ postmaster
systemd+  4619  0.0  0.1 213236 10076 ?        Ss   16:03   0:00          |   \_ postmaster
systemd+  4620  0.0  0.1 213904  8860 ?        Ss   16:03   0:00          |   \_ postmaster
systemd+  4621  0.0  0.0  68004  5592 ?        Ss   16:03   0:00          |   \_ postmaster
systemd+  4622  0.0  0.0 213796  7100 ?        Ss   16:03   0:00          |   \_ postmaster
message+  4682  0.2  0.4  87976 35724 ?        Sl   16:03   0:00          \_ redis-server
1000      7722  1.1  0.0      0     0 ?        Z    16:07   0:01          \_ esbuild <defunct>
root      7736  0.0  0.0   2476   520 ?        S    16:07   0:00          \_ sh
root      7737  0.0  0.0   9296  4156 ?        S    16:07   0:00          |   \_ su
1000      7738  8.3  0.0   2476   580 ?        Ss   16:07   0:12          |       \_ sh
1000      7835  0.4  0.9 929524 78416 ?        Sl   16:08   0:00          |           \_ node
1000      7857  0.0  0.0   2484   524 ?        S    16:08   0:00          |               \_ sh
1000      7858  156 30.5 67413228 2491796 ?    Sl   16:08   3:37          |                   \_ ember
1000      7876 39.0  1.7 11486300 145476 ?     Ssl  16:08   0:44          |                       \_ node
1000      7882 36.7  1.5 11466956 122648 ?     Ssl  16:08   0:41          |                       \_ node
1000      7889 37.1  4.1 11647592 340908 ?     Ssl  16:08   0:42          |                       \_ node
1000      7761  1.5  0.0      0     0 ?        Z    16:08   0:02          \_ esbuild <defunct>

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

تعديل: أخذت نسخة احتياطية قبل أن أبدأ وأخرى بعد الانتهاء من المهمة، وكانت تفصل بينهما 35 دقيقة. لذا لم يكن وقت التعطل كما رآه المستخدمون أطول من ذلك.

تعديل: لاحظ أن لوحة تحكم Digital Ocean تقول إن عملية تغيير الحجم قد تستغرق دقيقة واحدة لكل جيجابايت من البيانات على القرص - في حالتي 14 جيجابايت فقط، وكما تبين، دقيقتان فقط لكل تغيير حجم. ولكن إذا كان لديك قدر كبير من البيانات على المثيل، فقد تستغرق هذه الرقصة لتغيير الحجم وقتًا أطول. (ثم مرة أخرى، إذا كان لديك قدر كبير من البيانات، فربما لا تحاول تشغيلها في أقل من 4 جيجابايت من ذاكرة الوصول العشوائي).