Dalam artikel Computer World ini , disebutkan bahwa PostgreSQL dapat meningkatkan hingga batas inti 64. Apakah ini berarti untuk satu prosesor multi-core 64 core? Atau beberapa prosesor dengan core lebih sedikit?
Alasan mengapa saya bertanya adalah karena saya mencoba menemukan berapa banyak prosesor yang dapat ditingkatkan PostgreSQL tetapi tentu saja itu mungkin terbatas pada jenis prosesor. Namun, saya telah menemukan statistik lain di database lain (yaitu Microsoft SQL Server di sini menyatakan dapat meningkatkan hingga 320 prosesor logis) dan mereka tidak menentukan jumlah core mereka. Apakah ini statistik yang sangat kabur?
semua pemikiran akan sangat dihargai. Terima kasih!
Jawaban:
Tidak, ini statistik yang sangat tepat. "Prosesor logis" adalah inti. Dan intinya hanya itu, tidak masalah bagaimana mereka tersebar di prosesor fisik.
Dan jika Anda berurusan dengan mesin dengan core lebih banyak daripada angka yang didukung, ini seharusnya tidak menjadi masalah dengan PostgreSQL. Setiap koneksi secara inheren single-threaded * jadi berapapun jumlah core yang Anda miliki adalah apa yang akan membatasi efisiensi dan kemanjuran koneksi bersamaan.
Tak perlu dikatakan ini juga berarti Anda harus meletakkan uang Anda di inti lebih cepat dari jumlah inti kecuali jika Anda ingin mengelompokkan hal-hal dalam metode yang lebih rumit.
* Pembaruan 2017: Beberapa kueri (atau subkueri) dapat dieksekusi secara paralel .
sumber
Needless to say this also means you should put your money in faster cores than quantity of cores unless you want to cluster things in a more complicated method.
<- Saya hanya setuju dengan pernyataan ini jika jumlah core lebih besar dari jumlah klien konkuren, dan jumlah klien konkuren tidak mungkin meningkat. Sangat penting bagi kinerja untuk memiliki inti yang tersedia untuk setiap backend Postgres ...Postgres dapat meningkatkan sebanyak prosesor yang ingin Anda instal, dan OS Anda dapat menangani / mengelola secara efektif. Anda dapat menginstal Postgres pada mesin 128 inti (atau bahkan mesin dengan 128 prosesor fisik) dan itu akan berfungsi dengan baik. Ini mungkin bahkan bekerja lebih baik dari pada mesin 64 inti jika OS scheduler dapat menangani banyak core.
Postgres telah ditunjukkan untuk skala linear hingga 64 core (dengan peringatan: Kita berbicara tentang kinerja baca, dalam konfigurasi tertentu (disk, RAM, OS, dll.) - Robert Haas memiliki artikel blog dengan grafik yang bagus yang Saya telah mereproduksi di bawah ini:
Apa yang penting tentang grafik ini?
Hubungannya linear (atau hampir sama) selama Jumlah Klien kurang dari atau sama dengan Jumlah Core , dan kemudian mulai apa yang tampak kira-kira penurunan kinerja log-linear karena Anda memiliki lebih banyak koneksi klien daripada Anda lakukan core untuk menjalankan Postgres backends pada karena backends mulai berjuang untuk CPU (rata-rata beban berjalan di atas 1.0, dll ...).
Meskipun hanya diperlihatkan hingga 64 core, Anda dapat menggeneralisasi bahwa Anda dapat terus menambahkan core (dan klien) dan terus meningkatkan kinerja, hingga batas beberapa subsistem lain (disk, memori, jaringan) di mana proses tidak lagi mengalami masalah pertikaian CPU tetapi malah menunggu sesuatu yang lain.
( Haas juga memiliki artikel lain di mana mereka membuktikan skalabilitas linier hingga 32 core yang memiliki beberapa bahan referensi yang bagus tentang skalabilitas secara umum - bacaan latar yang sangat direkomendasikan!)
sumber
Yang lain telah mengklarifikasi bahwa prosesor logis umumnya mengacu pada inti CPU, tetapi saya ingin mengomentari pernyataan bahwa tidak masalah bagaimana core tersebar di CPU.
Anda dapat memiliki cache pada die CPU yang dibagi di antara inti atau yang didedikasikan untuk satu atau subkelompok inti. Sebagai contoh, satu konfigurasi umum adalah cache L1 khusus dan cache L2 bersama. Dalam hal ini, skalabilitas CPU dual core tunggal dapat berbeda dari dua CPU core tunggal.
Skalabilitas ini mempengaruhi berlanjut ke memori utama, dengan mesin NUMA menunjukkan perilaku yang berbeda dari non-NUMA.
Saya tunjukkan ini hanya karena OP sedang membahas pertanyaan skalabilitas, yang jawabannya umumnya lebih bernuansa daripada "program X dapat menggunakan inti CPU Y".
sumber
Dalam hal ini, yang mereka maksudkan adalah beberapa prosesor dengan inti yang lebih sedikit ... Beberapa dari pembicaraan tersebut adalah bukti masa depan. Beberapa berbicara tentang pemasaran.
sumber