Dengan anggapan Anda memiliki server khusus untuk fungsi-fungsi basis data - berapa banyak memori yang harus Anda pesan untuk sistem operasi?
Saya menyadari ini mungkin akan sedikit berbeda tergantung pada OS tertentu, perangkat lunak database tertentu, dan sebagainya. Tapi, karena memori sangat penting untuk kinerja database, saya ingin database memiliki tingkat memori yang wajar maksimum , tanpa kelaparan OS host.
Begitu
- apa aturan praktis yang baik untuk memulai?
- penghitung atau indikator kinerja apa yang harus kita lihat untuk menentukan apakah kita sudah melangkah terlalu jauh dan OS host entah bagaimana kelaparan oleh database?
sql-server
windows
memory
Jeff Atwood
sumber
sumber
Jawaban:
Mengasumsikan Windows dan SQL Server ...
Ada dua aliran pemikiran.
Secara pribadi saya berada di grup pertama. Windows biasanya hanya membutuhkan 2-4 gigs, terkadang hingga 6.
sumber
Dengan asumsi Linux, jika Anda mematikan swap dan kernel terus membunuh proses DB Anda karena kehabisan memori, itu adalah indikator yang baik Anda kelaparan OS untuk memori. Mundur hingga berhenti terjadi. Beberapa ratus MB biasanya banyak.
sumber
Anda dapat memanfaatkan pengalaman Amazon dalam menjalankan ribuan server basis data pelanggan di sini: Di Layanan Database Relasional Amazon, mereka menetapkan kumpulan buffer innodb MySQL menjadi 3/4 dari memori sistem, terlepas dari berapa banyak memori yang ada. Tambahkan hingga beberapa MB per koneksi untuk berbagai buffer permintaan, dan mereka kemungkinan menyisakan 10-20% dari memori ke OS.
sumber
Anda harus membaca memori Brent Ozar . Dia memiliki beberapa jawaban yang cukup standar tentang mengapa Anda harus mencari memori dan mengapa lebih banyak memori sama dengan kinerja yang lebih baik. Secara umum 4 GB atau 10% dicadangkan untuk OS.
sumber