Server basis data: RAM cepat kecil atau RAM lambat besar?

33

Kami saat ini sedang merancang server database baru kami, dan telah menghasilkan trade off, saya tidak sepenuhnya yakin bagaimana menjawabnya.

Ini adalah opsi kami: 48GB 1333MHz, atau 96GB 1066MHz.

Pemikiran saya adalah bahwa RAM harus banyak untuk Server Database (kami memiliki banyak dan banyak data, dan beberapa pertanyaan yang sangat besar) daripada secepat mungkin. Tampaknya kita tidak bisa mendapatkan chip 16GB pada 1333MHz, maka pilihan di atas.

Jadi, haruskah kita mendapatkan banyak RAM yang lebih lambat, atau RAM yang lebih cepat?

Informasi tambahan:

Jumlah Slot DIMM Yang Tersedia: 6
Server: Dell Blades CPU: 6 core (hanya soket tunggal karena lisensi Oracle).

Josh Smeaton
sumber
12
IMO, 100% lebih banyak kapasitas RAM mengalahkan 20% tambahan dalam kecepatan RAM.
Joe Internet
3
Terutama karena itu bahkan tidak 20%;)
TomTom
Terimakasih semuanya. Saya cukup yakin dengan ini juga, tetapi ingin konfirmasi.
Josh Smeaton

Jawaban:

59

Anda harus menggunakan RAM yang besar dan lambat. Perbedaan dalam kinerja RAM dapat diabaikan dibandingkan dengan perbedaan antara kinerja RAM dan kinerja disk.

Skyhawk
sumber
Tentu saja, ini tergantung pada ukuran database - detail dasar tetapi tetap penting.
Morg.
Ya, dan Josh dengan jelas menetapkan bahwa skenario yang ada melibatkan "banyak dan banyak data."
Skyhawk
Bagi sebagian orang, sejuta baris terlihat seperti "banyak dan banyak data" Bukan alasan untuk tidak memiliki semuanya dalam memori;)
Morg.
16

Baiklah, ini sangat sangat sangat sederhana:

Apakah basis data Anda muat dalam 48GB RAM dengan OS dan semuanya? jika ya, ambil itu. Lain, ambil 96GB

Juga, pemasangan basis data dalam xyz GB RAM berarti cocok dengan indeks, tampilan, dan semua itu.

Komentar SSD sepenuhnya omong kosong, baik bandwidth dan waktu akses tidak pada tingkat yang sama dan tidak ada SSD yang dapat membenarkan mengambil lebih sedikit RAM.

Morg.
sumber
5
Ini info yang sangat penting. Jika database hanya 5GB dan tidak direncanakan untuk menjadi jauh lebih besar, maka Anda sebaiknya menggunakan RAM yang lebih cepat.
Kibbee
13

Hanya basis data? Tergantung pada database, saya akan berpikir RAM yang lebih besar akan lebih baik. Perbedaan kecepatan telah terbukti sangat kecil, tetapi 48GB tambahan akan / dapat membuat perbedaan besar.

TomTom
sumber
11

RAM pasti besar, kecepatan terkutuk.

Akses ke data acak untuk teknologi RAM dari abad XX '90 di bawah 100 ns. Itu menggunakan kepingan-kepingan kuno yang praktis yang bahkan secara fisik tidak akan masuk ke dalam batasan kontemporer apa pun.

Akses ke data acak untuk hard drive 15k rpm yang canggih diukur dalam milidetik. 100 ns adalah 10 000 kali lebih pendek (nano -> mikro -> mili) dari 1 ms. RAM saat ini lebih cepat, dan HDD membutuhkan beberapa milidetik untuk mengakses data. Saya tidak peduli jika RAM saya lebih cepat 50.000 atau hanya 30.000 kali lebih cepat daripada HDD, jika saya bisa mendapatkan lebih banyak.

Paweł Brodacki
sumber
5

Anda harus memperhatikan beberapa hal:

  • Lentera memori Kecepatan memori tergantung pada dua faktor: kecepatan bus dan latensi. Biasanya chip dengan kepadatan lebih banyak menghasilkan latensi yang lebih tinggi, yang akhirnya berarti lebih sedikit kecepatan
  • Total data indeks Y paling kritis untuk memuat seluruh data indeks ke dalam memori. Data indeks adalah data paling penting yang Anda butuhkan dalam memori (efek penalti yang lebih tinggi dalam kinerja).
  • Kecepatan disk Apakah Anda memiliki data DB yang disimpan dalam SSD? Jika jawabannya ya, berhati-hatilah terhadap latensi memori.
nefeli
sumber
2

BANDWIDTH MEMORY = / = KECEPATAN!

Mungkin bagian terpenting dari informasi yang hilang adalah pengaturan waktu memori dan tipe CPU / FSB. turunkan keterlambatan beban memori CPU dengan beberapa siklus dan Anda akan meledakkan ram dua kali lipat bandwidth dalam perhitungan tertentu. Beberapa database tidak menggunakan ram dalam jumlah besar karena sistem operasi dan alasan teknis, server database apa yang Anda gunakan? Jenis CPU? L [123] level cache? jenis pertanyaan yang akan dijalankan? ukuran basis data?

Silverfire
sumber
2
-1. Faktualy salah dalam 99,9% kasus.
TomTom
Bagian apa yang Anda maksud?
Silverfire
2
Database yang lebih besar dari memori akan segera melambat. siklus cpu adalah lelucon dibandingkan dengan - kecuali jika ini adalah kasus OLAP yang sangat khusus - IO latency diperkenalkan. Sebagian besar database menggunakan jumlah ram yang sangat besar - SERVER dataase samllest yang saya lihat yang bukan lelucon untuk database kecil jauh lebih besar dalam penggunaan RAM daripada rata-rata workstation. Kecuali Anda bersikeras menggunakan teknologi yang sangat ketinggalan jaman ("batas sistem os"). Dan kecepatan cpu atau tipe fsb tidak membuat perbedaan - database membutuhkan memori.
TomTom
0

Sebelum menghabiskan terlalu banyak uang untuk perangkat keras yang salah, saya akan melakukan beberapa tes dan analisis sebelum membeli perangkat keras.

  • Pertama-tama, pikirkan tentang SLA Anda.
  • Adakah persyaratan sulit untuk kinerja dan waktu tanggapan?

Pilihan Anda harus bergantung pada banyak faktor:

  • di bawah beban kerja dan penggunaan yang berbeda, apa sebenarnya hambatannya?
  • CPU, memori, penyimpanan, jaringan?
  • Apakah mungkin lebih penting untuk menghabiskan lebih banyak uang untuk penyimpanan lebih cepat daripada lebih banyak memori?
  • CPU lebih cepat dari lebih banyak memori? jaringan lebih cepat? redesign minor pada sofware / sql?

  • analisis Anda juga bisa sangat relevan dengan pengembang, arsitek basis data dan perangkat lunak, dan desainer kueri sql .....

Jika Anda menggunakan windows - Anda dapat dengan mudah menjalankan perfmon untuk melihat beberapa statika pada sistem yang sedang berjalan dan mungkin sangat beruntung mendapatkan ide yang jelas tentang kebutuhan Anda.

manmathan
sumber
1
Saya seorang pengembang, dan membantu mempertimbangkan keputusan ini. Kami tidak memiliki admin sistem yang nyata, jadi kami semua (6 dari kami) memiliki masukan ke dalam diskusi. Server kami saat ini 32 bit, dan tidak dapat melakukan banyak hal karena batas memori per proses. Jaringan / penyimpanan kami baik-baik saja untuk saat ini. Backend penyimpanan adalah SAN. CPU kami tidak pernah maksimal. Sebagian besar biaya yang terkait dengan permintaan kami adalah I / O, yang harus dikurangi dengan kemampuan untuk menggunakan lebih banyak RAM. Kami juga meningkatkan ke RAC. Kami memiliki gagasan yang jelas tentang apa yang kami butuhkan. Minutia yang dipertanyakan.
Josh Smeaton