İşletim sistemi, kalıcı hizmetler ve gerçekçi eşzamanlılık için yeterli pay bırakarak bellek seçin. Hangi görevlerin yoğun olduğunu, paralel çalışıp çalışmadıklarını ve kullanıcıların gerçekte ne gibi gecikmeler yaşadığını ölçtükten sonra CPU seçin.
Normal işi ve yoğun işi ayrı ayrı tanımlayın
Tek başına ziyaretçi sayısı zayıf bir boyutlandırma girdisidir. Bir istek önbelleğe alınmış bir dosyayı sunarken bir diğeri rapor oluşturabilir veya birçok tabloyu sorgulayabilir. VPS'ı paylaşacak web çalışanlarını, veritabanını, önbelleği, kuyruk tüketicilerini ve bakım görevlerini listeleyin. Normal eşzamanlılığı ve beklenen en yoğun işlemi tanımlayın. Zamanlanmış dışa aktarımları, paket güncellemelerini ve dağıtımları görünmez arka plan etkinliği olarak değerlendirmek yerine bunlara dahil edin.
Mevcut bir proje için yoğun bir pencere içeren temsili bir dönem toplayın. Kaynak kullanımının yanı sıra yanıt sürelerini ve hataları kaydedin. Yeni bir proje için gerçekçi istek biçimleri ve veri boyutlarıyla küçük bir test oluşturun. İlk tahmininiz kusurlu olacaktır; faydalı hedef, teslimattan sonra ölçülen davranışla karşılaştırabileceğiniz belgelenmiş bir başlangıç noktasıdır.
Süreçleri eklemeden önce bellek bütçesini oluşturun
Bellek talebi sistemden, kalıcı uygulama hizmetlerinden, çalışan başına kullanımdan ve geçici işlemlerden kaynaklanır. Bir çalışanın ayak izini planlanan eşzamanlılıkla çarpmak kaba bir planlama aracıdır, garanti değildir; çünkü paylaşılan bellek ve önbellekler toplamı karmaşıklaştırır. Yük altındaki gerçek süreçleri gözlemleyin. Bir bakım görevinin uygulamayı kalan her sayfa için rekabet etmeye zorlamaması için yeterli alan bırakın.
Veritabanı ayarları bellek kullanımını beklenmedik şekilde artırabilir. PostgreSQL, work_mem'in sorgu işlemlerine uygulandığını ve birkaç işlemin veya oturumun eşzamanlı çalışabileceğini belgeler. Bu nedenle tek başına mütevazı görünen bir ayarın sistem üzerinde daha büyük bir etkisi olabilir. Veritabanınızın kendi kılavuzunu okuyun, gerçekçi eşzamanlılığı test edin ve duyurulan her gigabaytı tek bir önbelleğe atamaktan kaçının.
CPU kullanımını yararlı paralellikten ayırın
İşlemci sayısı, konuğa kaç yürütme kaynağı sunulduğunu söyler; yazılımınızın bunları ne kadar verimli kullanabileceğini değil. Bir meşgul iş parçacığı, diğer çekirdekler sessiz kalırken bir uygulamayı sınırlayabilir. Çalışan eklemek bağımsız isteklere yardımcı olabilir, ancak veritabanı çekişmesini ve bellek talebini de artırabilir. Çekirdek sayısının iki katının verimin iki katını üreteceğini varsaymadan önce uygulamanın eşzamanlılık modelini kontrol edin.
KVM, sanal makinelere kendi sanal donanımlarını sağlar. Her vCPU etiketini ana makineler ve işlemci nesilleri arasında aynı kıyaslama sonucuna dönüştürmez. Mümkün olduğunda listelenen CPU modelini ve tahsis koşullarını karşılaştırın, ardından hizmeti kendi iş yükünüzle değerlendirin. Uygulamaya benzemeyen kısa bir sentetik puandan satın alma sonucu çıkarmaktan kaçının.
Yalnızca ortalamalara değil, baskıya ve beklemeye bakın
Bir sistem yüksek ortalama CPU yüzdesi tutmadan yavaş hissedilebilir. Süreçler depolama, bellek geri kazanımı veya başka bir hizmet üzerinde bekleyebilir. Linux çekirdeğinin Pressure Stall Information özelliği, desteklenen sistemlerde CPU, bellek ve G/Ç bekleme bilgilerini sunar. Bu sinyaller, normal kullanım metrikleri ve uygulama zamanlamalarının yanı sıra kaynak çekişmesini belirlemeye yardımcı olabilir.
Metrikleri birlikte okuyun. Sürekli bellek baskısı, takas, başarısız ayırmalar ve yavaş istekler, tek bir meşgul hesaplama çalışanından farklı bir müdahaleye işaret eder. Depolama beklemeleri sorgu değişikliklerini veya farklı bir disk profilini haklı çıkarabilir. Harici bir API gecikmesi, yerel RAM eklenerek giderilmez. Hangi kaynağı artıracağınızı seçmeden önce gözlemlenen kısıtı açıklayın.
| Gözlemlenen davranış | Araştırılacak soru | Olası sonraki adım |
|---|---|---|
| Bir iş parçacığı meşgul, yedek çekirdekler sessiz | Bu iş paralel çalışabilir mi? | Görevi iyileştirin veya çalışan tasarımını değiştirin |
| Rapor sırasında bellek baskısı | Kaç işlem örtüşüyor? | Eşzamanlılığı sınırlayın veya test edilmiş pay ekleyin |
| G/Ç beklemeleriyle yavaş istekler | Hangi okumalar veya yazmalar gecikiyor? | Sorguları ve depolama davranışını inceleyin |
| CPU ve bellek düşük, istekler yavaş | Bir bağımlılık yanıtları geciktiriyor mu? | Aşağı yönlü çağrıları ölçün |
Açık varsayımlarla bir planlama örneği
İki web çalışanı, bir veritabanı ve bir kuyruk tüketicisi olan küçük bir uygulama düşünün. Ekip bu hizmetleri normal istekler ve bir rapor oluşturma görevi sırasında ölçer. Aynı anda dört rapora izin vermenin bellek talebini keskin şekilde artırırken normal trafiği geciktirdiğini keşfeder. Hemen en büyük planı satın almak yerine rapor eşzamanlılığını sınırlar ve sonucu yeniden ölçer.
Ayarlanmış iş yükü hâlâ daha fazla bellek gerektiriyorsa, yükseltme artık gözlemlenen bir gereksinimi karşılar. Kuyruk CPU'a bağlı kalıyorsa ve bağımsız işler eşzamanlı çalışabiliyorsa, daha fazla yürütme kaynağı uygun olabilir. Bunlar örnek kararlardır, SwissOctet planları için performans rakamları değildir. Kendi ölçümlerinizi ve kısıtlarınızı seçilen yapılandırmayla birlikte saklayın.
Bir sonraki ölçüm için net bir yol bırakın
İncelemeyi tetikleyecek işaretleri tanımlayın: yanıt süresi bozulması, tekrarlanan bellek baskısı, büyüyen kuyruklar veya değişen bir iş yükü. İzlemeyi yeni bir darboğaz haline gelmeyecek kadar hafif tutun. Bir özellik veya büyük bir veri kümesi ekledikten sonra yeniden değerlendirin ve gerçek sorun sınırsız bir süreç veya yavaş bir sorgu olduğunda tekrarlanan yükseltmelerden kaçının.
SwissOctet'ın VPS aileleri CPU ve bellek özelliklerini ve seçili kaynak seçeneklerini sunar. Ekstraları ekledikten sonra faturalama dönemi ve toplam dahil nihai yapılandırmayı okuyun. Yükseltme düzenlemelerini güvenmeden önce canlı operatörle doğrulayın. Kullanışlı bir VPS boyutu, ölçülen iş yükünü makul bir pay ve anlaşılır bir sonraki adımla çalıştıran boyuttur.
Pratik kontrol listeniz.
- Hizmetleri ve bakım işlerini envanterleyin.
- Normal ve yoğun dönem eşzamanlılığını ölçün.
- Kalıcı ve geçici belleği bütçeleyin.
- CPU işinin paralel çalışıp çalışamayacağını kontrol edin.
- Baskıyı, kullanımı ve uygulama zamanlamalarını karşılaştırın.
- Yapılandırmanın ne zaman inceleneceğini tanımlayın.
Önemli olan ayrıntılar.
Bir VPS'ı aylık ziyaretçilere göre mi boyutlandırmalıyım?+
Ziyaretçi sayısını bağlam olarak kullanın, ardından istek karmaşıklığını, eşzamanlılığı, veri boyutunu ve arka plan işlerini ölçün. Eşit ziyaretçi sayıları farklı yükler oluşturabilir.
Daha fazla RAM bir hizmeti her zaman daha hızlı yapar mı?+
Hayır. Bellek bir kısıt olduğunda veya yararlı önbelleğe alma sağladığında yardımcı olur, ancak her CPU, depolama veya harici bağımlılık gecikmesini çözmez.
vCPU sayısının iki katı performansı iki katına çıkarır mı?+
Hayır. Paralellik, işlemci özellikleri, çekişme ve uygulamanın tasarımı ne kadar ek kapasitenin yararlı olacağını belirler.
Kaynağa gidin.
Bu kaynaklar, bu kılavuzdaki teknik kavramları destekler. Bir üretim sistemini değiştirmeden önce güncel belgeleri izleyin.
- Linux çekirdeği: Baskı Duraklama Bilgisi docs.kernel.org
- PostgreSQL: Kaynak Tüketimi www.postgresql.org
- KVM projesi: Çekirdek Sanal Makinesi www.linux-kvm.org
SwissOctet tarafından editoryal rehberlik. Örnekler açıklayıcıdır. Hizmet spesifikasyonları, mevcut seçenekler ve sözleşme koşulları ayrıca doğrulanmalıdır.