PostgreSQL performansı en üst düzeye çıkarır SSD


19

Tablo başına 100'den fazla giriş ile birçok tablo ile büyük bir PostgreSQL 9.3 veritabanı olacak. Bu veritabanı temel olarak salt okunur olacaktır (tüm gerekli tabloları doldurup dizinleri DB'de artık yazma işlemi yapmaz) ve tek kullanıcı erişimi (localhost'tan birden fazla sorguyu çalıştır ve karşılaştır) sadece araştırma amaçlıdır. Sorgular her zaman tamsayı DB alanlarında JOIN kullanır.

Bu amaçla muhtemelen bir SSD (256-512GB) satın alacağım. Daha önce bir DB için SSD kullanmadım, bu yüzden korkmam gereken bir şey var mı? Tüm DB'yi SSD'ye veya yalnızca dizinlere koyabilir miyim? SSD'ler için PostgreSQL'in ayarlanması için özel bir tavsiye / öğretici gerekli mi? Unutmayın, bir i7 ve 32Gb RAM ile iyi bir iş istasyonum var, bu yüzden orada da bazı tavsiyeler sunabilirsiniz.

Yanıtlar:


16

korkmam gereken bir şey var mı?

Yedekleri yok. Herhangi bir depolama cihazı gibi, ölebilir. Yedekleri saklayın.

Veri yükü yaş alacaksa, veri yükünü tamamladıktan sonra durdurarak ve kopyalayarak salt okunur db'yi yedeklerdim. Bu şekilde bir şeyler ters giderse, daha sonra yeniden oluşturmak daha kolay olurdu.

Tüm DB'yi SSD'ye veya yalnızca dizinlere koyabilir miyim?

Uyuyorsa, tüm DB'yi saklayın.

Değilse, SSD'ye bir tablo alanı koyun ve dizinleri ve çok sorgulanan tabloların sığacağı kadar saklamak için kullanın.

SSD'ler için PostgreSQL'in ayarlanması için özel bir tavsiye / öğretici gerekli mi?

SSD'lerin yararlarının çoğu OLTP yazma yükleri içindir. Salt okunur yüklerin ana avantajı hızlı arama yapmaktır ve slardiere bunu kapsamaktadır.

effective_io_concurrency = 5SSD'lerin hızlı, yoğun şekilde pipeline edilmiş rastgele okumalar yapabileceği gerçeğini yansıtacak bir şey ayarlamak isteyebilirsiniz ... ancak sadece bitmap dizin taramalarını etkiler ve pratikte bunu random_page_costzaten içerir.

Salt okunur bir yük için bir ton fark yaratmaz.

İlk veri yüklemesi için bkz.

Unutmayın, bir i7 ve 32Gb RAM ile iyi bir iş istasyonum var, bu yüzden orada da bazı tavsiyeler sunabilirsiniz.

maintenance_work_memVeri yüklemesi için büyük bir değer belirleyin. En azından kullanırdım 8GB.

work_memSorgulama işi için büyük bir değer belirleyin. Uygun boyut biraz sorgu karmaşıklığına bağlıdır. İle başlayın 500MBve oradan yukarı çıkın.

Senin kadar Bump checkpoint_segments(kitlesel) ilk veri yükü için.

VM aşırı hizmetini devre dışı bırakmayı unutmayın! (PostgreSQL kılavuzuna bakın: http://www.postgresql.org/docs/current/static/kernel-resources.html )


22

SSD'ler hakkında ana öneri, diğer olağan ayarlarına ek olarak postgresql.conf dosyasında 'random_page_cost' değerini 1'e ('seq_page_cost' değerine) düşürmektir.


Belki de postgresql.org/docs/11/… uyarınca her iki değer de 1.0'dan küçük olmalıdır : "Disk G / Ç maliyetlerinin CPU maliyetlerine göre önemini değiştirmek için her iki değeri birlikte yükseltebilir veya düşürebilirsiniz. aşağıdaki parametreler ".
Kirill Bulygin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.