PM2 Nedir?
PM2 kurulumu, kullanımı ve avantajlarını detaylıca keşfedin. Node.js uygulamalarınızı kolayca yönetin ve izleyin!

Node.js uygulamalarıyla uğraşan herkesin mutlaka bilmesi gereken bir araçtan, PM2'den bahsedeceğim. Kendi projelerimde sıklıkla kullandığım ve hayatımı kolaylaştıran bu aracın ne olduğunu, neden kullanmanız gerektiğini ve nasıl kullanabileceğinizi anlatacağım.
Kısaca PM2 Nedir?
PM2, Node.js uygulamalarını kolayca yönetmenizi ve izleyebilmenizi sağlayan güçlü bir süreç yöneticisidir. Kısacası, Node.js uygulamalarınızı başlatmak, durdurmak, yeniden başlatmak ve izlemek için kullanabileceğiniz bir araçtır.
Neden PM2 Kullanmalıyız?
PM2'nin neden bu kadar popüler ve yararlı olduğunu birkaç maddeyle özetleyelim:
- Kolay Yönetim: PM2, Node.js süreçlerinizi tek bir komutla yönetmenizi sağlar. Bu, özellikle birden fazla uygulamayı aynı anda çalıştıranlar için büyük bir avantajdır.
- Otomatik Yeniden Başlatma: Uygulamanız çökerse, PM2 otomatik olarak yeniden başlatır. Böylece, sürekli başında durmanız gerekmez.
- Yüksek Kullanılabilirlik: PM2, uygulamanızın her zaman erişilebilir olmasını sağlar. Bu da kullanıcılarınıza kesintisiz bir hizmet sunmanıza yardımcı olur.
- İzleme ve Loglama: PM2, uygulamalarınızın performansını izleyebilir ve loglarınızı yönetebilir. Bu, sorunları hızlıca tespit edip çözmenizi sağlar.
- Cluster Modu: PM2, Node.js'nin cluster modunu destekler. Bu da CPU çekirdeklerinizden en iyi şekilde yararlanmanızı sağlar ve performansı artırır.
PM2 Nasıl Kurulur ve Kullanılır?
PM2'yi kullanmaya başlamak oldukça basit. İşte adım adım PM2'yi nasıl kurup kullanabileceğiniz:
Kurulum
İlk olarak, PM2'yi npm kullanarak global olarak kurmalısınız. Terminalinize aşağıdaki komutu yazın:
npm install -g pm2
Uygulama Başlatma
PM2 kurulduktan sonra, uygulamanızı başlatmak oldukça kolay. Örneğin, app.js
isimli bir Node.js uygulamanız var diyelim. Terminalde şu komutu kullanarak başlatabilirsiniz:
pm2 start app.js
pm2 save
komutuyla mevcut süreçlerinizi kaydedebilirsiniz. Böylece sunucu yeniden başladığında otomatik olarak çalışır.PM2 ile Nuxt.js Projesi Başlatma
Nuxt.js projenizin kök dizininde ecosystem.config.js
adında bir dosya oluşturun ve aşağıdaki içeriği ekleyin:
module.exports = {
apps: [
{
name: 'nuxt-app',
exec_mode: 'cluster',
instances: 'max', // CPU çekirdek sayısı kadar instance başlatır
script: './node_modules/nuxt/bin/nuxt.js',
args: 'start'
}
]
}
PM2 ile Next.js Projesi Başlatma
Next projenizin kök dizininde ecosystem.config.js
adında bir dosya oluşturun ve aşağıdaki içeriği ekleyin:
module.exports = {
apps: [
{
name: 'next-app',
exec_mode: 'cluster',
instances: 'max', // CPU çekirdek sayısı kadar instance başlatır
script: './node_modules/next/dist/bin/next',
args: 'start'
}
]
}
Uygulama Yönetimi
PM2 ile çalışan süreçlerinizi görmek için şu komutu kullanabilirsiniz:
pm2 list
Bu komut, çalışan tüm süreçlerinizi ve durumlarını gösterir. Bir süreci durdurmak isterseniz:
pm2 stop <process_id>
Süreci yeniden başlatmak için:
pm2 restart <process_id>
Uygulamayı kaldırmak isterseniz:
pm2 delete <process_id>
PM2 Logları Nasıl İzlenir?
Tüm çalışan uygulamaların loglarını görmek için şu komutu kullanabilirsiniz:
pm2 logs
Belirli bir uygulamanın loglarını görmek için uygulamanın adı veya ID'si ile şu komutu kullanın:
pm2 logs <app_name_or_id>
Cluster Modu
Uygulamanızı tüm CPU çekirdeklerinde çalıştırmak isterseniz:
pm2 start app.js -i max
Cluster modu ne işe yarar?
PM2'de Cluster Mode (Küme Modu), Node.js uygulamalarının daha yüksek performans ve ölçeklenebilirlik ile çalışmasını sağlamak için kullanılan bir çalışma modudur. Bu mod, uygulamanızın birden fazla çekirdek üzerinde paralel olarak çalıştırılmasını sağlar.
Cluster Modunun Temel Avantajları
- Çok Çekirdekli Performans
Node.js tek iş parçacıklı (single-threaded) bir çalışma modeline sahiptir. Cluster modu, CPU'nun tüm çekirdeklerini kullanarak uygulamanızın performansını artırır. - Yük Dengeleme (Load Balancing)
Gelen istekler otomatik olarak çalışan işlemciler (worker) arasında dağıtılır. Böylece sunucuya gelen yüksek trafikte denge sağlanır. - Kesintisiz Çalışma (Zero Downtime Reloads)
Uygulama güncellemeleri sırasında kesinti yaşanmadan çalışan işlemler sırasıyla yeniden başlatılır. Kullanıcılar kesinti hissetmez. - Hata Toleransı (Fault Tolerance)
Bir worker çökse bile PM2 otomatik olarak o işlemi yeniden başlatır. Böylece sistem kararlılığı korunur.
Sonuç
PM2, Node.js uygulamalarını yönetmek ve izlemek için mükemmel bir araçtır. Kolay kullanımı, otomatik yeniden başlatma özelliği ve gelişmiş log yönetimi ile Node.js geliştiricileri için vazgeçilmez bir araçtır. Kendi projelerimde sıkça kullandığım PM2'nin, sizin de projelerinizde büyük kolaylık sağlayacağını düşünüyorum. Deneyin ve farkı görün!