ClickHouse Mencapai Penskalaan Hampir Linear pada Pemproses 288-Teras Intel Melalui Pengoptimuman Memori

Pasukan Komuniti BigGo
ClickHouse Mencapai Penskalaan Hampir Linear pada Pemproses 288-Teras Intel Melalui Pengoptimuman Memori

ClickHouse telah berjaya mengoptimumkan enjin pangkalan datanya untuk berjalan dengan cekap pada pemproses kiraan teras ultra tinggi terkini Intel , termasuk cip Sierra Forest 288-teras. Pencapaian ini menangani salah satu cabaran terbesar dalam pengkomputeran moden: menjadikan perisian berskala berkesan merentas ratusan teras CPU tanpa menghadapi kesesakan prestasi.

Kerja pengoptimuman tertumpu pada menyelesaikan masalah penskalaan kritikal yang timbul apabila pangkalan data cuba menggunakan semua kuasa pemprosesan yang tersedia pada pemproses besar ini. Pendekatan tradisional sering gagal kerana ia tidak direka untuk paralelisme yang melampau sedemikian.

Peruntukan Memori Menjadi Kesesakan Utama

Cabaran terbesar bukanlah kuasa CPU tetapi pengurusan memori. Apabila ratusan teras cuba memperuntukkan memori secara serentak, peruntuk memori itu sendiri menjadi kesesakan lalu lintas. Jurutera ClickHouse mendapati bahawa rutin peruntukan memori standard tidak dapat mengikuti permintaan 200+ teras yang semuanya meminta memori pada masa yang sama.

Penyelesaiannya melibatkan pelaksanaan peruntuk memori tempatan benang yang mengelakkan mekanisme penguncian yang menyebabkan kelewatan. Setiap benang pemprosesan mendapat kolam memorinya sendiri, menghapuskan keperluan untuk benang beratur untuk akses memori. Perubahan ini sahaja meningkatkan prestasi sebanyak 80% dan mengurangkan kelewatan benang sebanyak 90%.

Peruntuk tempatan benang: Sistem pengurusan memori di mana setiap benang pemprosesan mempunyai kolam memori khususnya sendiri, mengelakkan konflik antara benang.

Keputusan Pengoptimuman ClickHouse

  • Prestasi peruntukan memori: 80% peningkatan
  • Pengurangan latensi thread: 90% penurunan
  • Peningkatan frekuensi CPU: 40% kenaikan
  • Keupayaan penskalaan: Hampir linear merentasi 200+ teras
  • Pemprosesan data: Keupayaan pemprosesan acara pengguna masa nyata

Strategi Pemproses Dua Landasan Intel Mencipta Pertukaran

Intel telah membahagikan pemproses pelayan mereka kepada dua kategori yang berbeza. Pemproses kiraan teras tinggi Sierra Forest menggunakan teras kecekapan (E-cores) yang mengemas lebih banyak teras ke dalam ruang yang sama tetapi tidak mempunyai ciri lanjutan seperti arahan AVX-512 . Sementara itu, pemproses Granite Rapids mereka menggunakan teras prestasi (P-cores) dengan sokongan AVX-512 penuh tetapi jumlah teras yang lebih sedikit.

Ini mewujudkan pilihan yang menarik untuk beban kerja pangkalan data. Untuk tugasan yang melibatkan banyak pemuatan data dan pemprosesan asas, 288 E-cores boleh mengatasi P-cores yang lebih sedikit tetapi lebih berkuasa kerana mereka menghabiskan masa yang lebih sedikit menunggu data. Walau bagaimanapun, untuk tugasan berat pengiraan, P-cores dengan set arahan lanjutan mereka masih menang.

Perbandingan Pemproses Pelayan Intel

Jenis Pemproses Bilangan Teras Jenis Teras Sokongan AVX-512 Beban Kerja Sasaran
Sierra Forest Sehingga 288 E-cores (Kecekapan) Tidak Intensif I/O, pemprosesan selari
Granite Rapids Teras lebih sedikit P-cores (Prestasi) Ya Intensif pengkomputeran, prestasi benang tunggal

Keuntungan Prestasi Dunia Sebenar Mengejutkan Pakar

Respons komuniti sangat positif, dengan pengguna melaporkan keputusan yang mengagumkan pada set data berbilang terabait. Seorang pengguna menerangkan memuatkan beberapa terabait data pasaran kewangan dan dapat mengagregat melalui berbilion rekod dalam beberapa minit sahaja, tanpa mengubah tetapan sistem lalai.

Sungguh menakjubkan bagaimana anda mendapat kedua-dua manfaat saiz kecil dan pertanyaan pantas, dengan tweak yang minimum. Saya rasa saya tidak mengubah sebarang lalai peringkat sistem, namun saya boleh mengagregat melalui keseluruhan beberapa bilion syot kilat dalam beberapa minit.

Pengoptimuman ini juga memberi manfaat kepada aplikasi lain di luar pangkalan data. Penyelidik yang bekerja pada penjujukan DNA dan tugasan intensif data lain mendapati bahawa pemproses teras ultra tinggi ini boleh bersaing dengan perkakasan GPU khusus untuk beban kerja tertentu, setelah perisian dioptimumkan dengan betul untuk seni bina perkakasan.

Teknik Pengoptimuman Utama

  • Pengalokasi memori thread-local: Menghapuskan kesesakan pengalokasian memori
  • Pengoptimuman arahan SIMD: Menggunakan SSE4.2 untuk operasi jadual hash
  • Pencegahan perkongsian palsu: Mengoptimumkan penggunaan baris cache merentas teras
  • Pengalokasian sedar-NUMA: Menguruskan penempatan memori untuk sistem multi-soket
  • Struktur data tanpa kunci: Mengurangkan pertembungan antara benang pemprosesan
Pasukan ClickHouse meraikan kejayaan pengoptimuman mereka untuk pemproses teras ultra-tinggi Intel, mempamerkan peningkatan prestasi dunia sebenar yang mengagumkan
Pasukan ClickHouse meraikan kejayaan pengoptimuman mereka untuk pemproses teras ultra-tinggi Intel, mempamerkan peningkatan prestasi dunia sebenar yang mengagumkan

Melihat ke Hadapan kepada Penggunaan Arus Perdana

Walaupun pemproses 288-teras mungkin kedengaran berlebihan untuk kebanyakan pengguna, teknik pengoptimuman yang dibangunkan untuk sistem melampau ini sering memberi manfaat kepada konfigurasi yang lebih kecil juga. Penambahbaikan peruntukan memori dan pemprosesan sedar NUMA membantu prestasi walaupun pada sistem desktop dengan 16 atau 32 teras.

Kejayaan ClickHouse pada pemproses ini menunjukkan bahawa perisian memang boleh berskala untuk sepadan dengan kemajuan perkakasan, tetapi ia memerlukan pemikiran semula asas tentang bagaimana aplikasi menguruskan sumber. Apabila pemproses kiraan teras tinggi ini menjadi lebih biasa dalam pusat data, jangkakan untuk melihat lebih banyak perisian mengikuti laluan pengoptimuman yang serupa.

NUMA (Non-Uniform Memory Access): Seni bina komputer di mana teras yang berbeza mempunyai akses yang lebih pantas kepada beberapa lokasi memori daripada yang lain, memerlukan pengoptimuman yang teliti untuk prestasi terbaik.

Rujukan: Optimizing ClickHouse for Intel's ultra-high core event processors