process واحدة على 8 coresبتشغّل كودك على core واحد بس
pm2 start app.jsfork وinstance واحدة (الـ default)pm2 start app.js -i 4cluster تلقائي، 4 workersعايز كذا instance بس fork
-x في الـ CLI، أو exec_mode: "fork" في الـ ecosystemفي الـ ecosystemاكتب
exec_mode صريح دايمًاapp مش Nodefork دايمًا
fork و port لكل instance
increment_var: "PORT" ووراهم Nginxcluster: مين الـ primary؟PM2 نفسه، وكودك جوه workers بس
عدد الـ workers
instances: "max"، أو -1 لو عايز تسيب corebin/www فيه cluster.isMaster و-i 10فرع الـ master كود ميت، و10 workers بالظبطنفس الملف في fork10 masters، والباقي بيقع بـ
EADDRINUSE؛ شيل كود الـ clusterisMasterdeprecated، والبديل isPrimaryDB connectionsworkers × pool max (Sequelize default 5)
NODE_TLS_REJECT_UNAUTHORIZED=0بيقفل التحقق للكل؛ استخدم httpsAgent لـ service واحدةHTTPS serverحط
on('error') على الفرعينsession أو cache أو rate limitRedis، مش RAM
cron جوه التطبيقبيتكرر لكل worker؛ process لوحده أو lock
Socket.io في clusterRedis adapter، وsticky لو فيه polling
request واحدة تقيلة
worker_threads أو queueKubernetesprocess لكل container، وزوّد الـ replicas
deploy من غير downtime
pm2 reload <name> في clusterreload يقفل بأدب
server.close على SIGINT، وwait_ready لو محتاجراقب
pm2 list · pm2 logs · pm2 monit · pm2 describePM2 يقوم مع الـ boot
pm2 startup من غير sudo، ونفّذ الأمر اللي طلع بالظبطالـ service شغالة؟
systemctl is-active pm2-$(whoami) وبعد reboot تبقى activeأكتر من يوزركل واحد
pm2-<username> وdump.pm2 في الهوم بتاعهاحفظ الـ apps
pm2 save وبتتكتب في ~/.pm2/dump.pm2غيّرت أي حاجة
pm2 save تانيغيّرت Node بـ nvm
pm2 unstartup ثم pm2 startup ثم pm2 saveحدّثت PM2
pm2 updateenv variablesecosystem أو
.env، مش export في الـ shellالـ service منفصلة؟لأ، بتشغّل نفس الـ daemon اللي
pm2 list بيكلمهsystemctl stop pm2-ubuntuبيعمل pm2 kill ويقفل كل الـ appspm2 وsudo pm2daemons مختلفين؛ يوزر واحد في كل حاجةinactive أول مرة بعد startupطبيعي؛ بعد أول reboot هتبقى active
الـ apps مرجعتشenabled؟ نفس اليوزر؟ dump حديث؟ مسار node؟
journalctl -bمفيش systemd
@reboot /full/path/pm2 resurrect في crontab نفس اليوزرالغي الـ startup
pm2 unstartup (ممكن يقفل الـ apps)logs بتكبر
pm2 install pm2-logrotateretain 77 قديمة + الحاليcompress falseالضغط مقفولامسح logs
pm2 flush، مش rmخلّصت المذكرة لما
🧠 اختبر نفسك
١) VPS بـ 8 cores عليها API stateless. تبدأ بإيه؟
cluster مع instances max، وتراجع الـ DB pool.
٢) pm2 start ./bin/www -i 10 والملف فيه cluster.fork. كام worker؟
10 بس، لأن فرع الـ master مش بيتنفذ تحت PM2 cluster.
٣) بعد الـ reboot pm2 list فاضية والـ service active. أول حاجة تشك فيها؟
اليوزر. غالبًا الـ apps اتحفظت بـ sudo pm2 أو بيوزر تاني.