2015-07-02 16 views
5

Postgresql'de tek bir sorgu için çok çekirdekli işlemci kullanmadığından bir sorun gözlemledik. Örneğin, cpu'da 8 çekirdim var. Stock.move tablosunda 40 Milyon giriş yapıyoruz. Tek bir veritabanında toplu sorgulama yapıldığında raporlama yapmak için & raporunu oluşturmak için arka tarafa baktığımızda, yalnızca bir çekirdeğin% 100'ünün kullanıldığını, diğer 7'sinin de ücretsiz olduğunu görüyoruz. Bu sorgu yürütme süresi nedeniyle daha uzun sürüyor ve odoo sistemimiz yavaş. Oysa postgresql çekirdek içinde sorun. Herhangi bir şekilde, iki veya daha fazla çekirdek arasında bir sorguyu paylaşabiliyorsak, postgresql sorgu yürütme işleminde performans artışı sağlayabiliriz.Veritabanında büyük veri olduğunda Odoo'nun neden yavaş olmasının nedeni?

Paralel sorgu yürütmeyi çözerek, Odoo performansını daha da hızlı hale getirebiliriz. Herkes bu konuda herhangi bir öneri var mı?

----------- * Bu soruyu düzenlemek, Postgresql Çekirdek komitesi * --------- I am posta İşte

gelen cevap göstermek için Postgresql veritabanının en iyi katkılarından birinden aldığım cevap. Bu davranacaksan bekleniyor

Merhaba Hiren ,

(Bu bilgi yararlı olacağını umuyoruz). PostgreSQL, tekli sorgu için paralel CPU'yu desteklemiyor. Bu konu yüksek geliştirme aşamasındadır ve muhtemelen, bu özelliği, planlanan sürüm 9.6 ~ Eylül 2016'da olacaktır. Ancak 40M satırlı tablo çok büyük değildir, bu nedenle muhtemelen daha fazla CPU, yardım etmemelidir. Başlama ve işleme çok CPU ile sorgu). Materyalize görünüm, preagregations gibi bazı normal püf noktaları kullanmanız gerekir. Bu hilelerin ana fikri - 'u tekrar etmeyiniz. PostgreSQL - indexes, vakum işleme, istatistik sağlığını kontrol edin. IH hw - hızını kontrol edin. PostgreSQL yapılandırmasını kontrol edin - shared_buffers, work_mem. Bazı sorgular nedeniyle yavaş olabilir kötü tahminler - yavaş sorguların açıklamasını kontrol edin. , bazı sorguları daha fazla sorguya ayırabilen ve paralel yürütme işlemini başlatan bazı araçlardır, ancak kullanmadım. https://launchpad.net/stado http://www.pgpool.net/docs/latest/tutorial-en.html#parallel

Selamlar Pavel Stehule

cevap

2

Bence Aradığınız yanıtları var - PostgreSQL şu anda henüz paralel sorgu desteklemez. Performansa yönelik genel öneri çok uygundur ve ayrıca bölümlemeyi de düşünebilirsiniz, bu da bir tablonun bölümlerini silmek veya bölümleri ayırmak yerine bölümleri kesmenize izin verebilir. Sorgu hakkında daha fazla bilgi sahibi olmadan bu konuda iyi tavsiyeler vermek imkansızdır.

Paralel olmayan sorgu Oracle sistemlerinde bu tür bir sorunla ilgili deneyim sahibi olmak, kullandığınız donanımı da göz önünde bulundurmanızı öneririm.

Çok sayıda çekirdeğe sahip CPU'lara yönelik modern trend, birçok kısa ömürlü işlemle web sunucuları veya diğer çok işlemli sistemler için harika bir yardımcıdır, ancak çok sayıda büyük işlem içeren bir veri işleme sisteminiz vardır. Bunu desteklemek için doğru donanıma ihtiyacınız var. Daha az, daha güçlü çekirdekli CPU'lar daha iyi bir seçimdir ve bellek ve depolama için bant genişliğine dikkat etmeniz gerekir.

Bu nedenle mühendislik sistemleri büyük veri ve veri ambarı ile popüler olmuştur.

+0

Postgresql hızlı ve daha iyi, dünyada birçok uygulama postgresql veritabanlarında çalışıyor ve iyi çalışıyor, ancak Odoo'nun kendi ORM'si ve mimarisi nedeniyle çok yavaş. Birçok tekrarlanan yığın bile çağırıyor ve kaçınıyor. Topluluk çabasıyla, odoo sahibi, şimdi işletme için özel olarak lisanslandırılmakta ve şu anda topluluğumuz için yetersiz performans sorunları için yeterince hazır değildir. Kişisel olarak odoo'yu postgres veritabanında değişiklik yapmadan kendi düzeltmeleri ve optimizasyonları ile birlikte yaptım, daha iyi ve daha iyi + hızlı çalışıyordum. –

+0

@TejasTank Önerileriniz var mı? – m3asmi

+0

@ m3asmi Sunucu yapılandırma özel yeteneği, yardım için snippetbucket.com adresine bağlanır. –