Saya memiliki beberapa server yang digunakan di seluruh dunia. Mereka menjalankan Windows 2003 x64 dengan SQL Server 2005 x64 dengan 6 GB RAM. Kotak tidak memiliki konfigurasi terbaik (atau bahkan dapat diterima), karena orang yang memesannya bertahun-tahun yang lalu tidak benar-benar tahu apa yang dia lakukan.
Kotak-kotak ini secara konsisten kehabisan memori, akhirnya menggunakan file paging dan semuanya melambat. Biasanya biaya komit adalah 5.8GB dan kemudian ketika seseorang perlu melakukan sesuatu yang intensif (misalnya menjalankan laporan), angka itu melewati atap.
Saya sudah mencoba untuk mendapatkan kekuatan yang memesan lebih banyak memori, tetapi saya mendapatkan oposisi besar (misalnya membuat perangkat lunak lebih berkinerja, terlalu banyak biaya untuk semua server ini, atau membuktikan bahwa kotak tidak memiliki cukup memori, dll. ..)
Apakah ada pedoman (atau formula) untuk berapa banyak RAM yang dibutuhkan kotak yang dapat saya presentasikan kepada non-teknisi, sehingga kami akhirnya dapat memesan lebih banyak memori?
sumber
Jawaban:
Tidak benar-benar ada cara untuk mengatakannya dengan mudah karena sepenuhnya bergantung pada penggunaan dan aplikasi Anda. Anda memaksimalkan server database ... seberapa besar database? Apa statistik transaksi Anda?
Batasan dunia nyata jelas dalam skenario Anda. Anda menjalankan sementara pada 6 manggung tanpa masalah, maka itu bertukar dan meronta-ronta. Jadi 6 manggung tidak cukup.
Jika kinerjanya cukup sehingga berdampak pada bisnis, maka atasan Anda harus mendengar cukup banyak keluhan sehingga perlu diingat. Cari tahu berapa biaya waktu Anda dan kemudian cari tahu berapa biayanya untuk "menyelaraskan" server dan memecahkan masalah penyetelan, ketika memori ditambahkan ke server mungkin sangat memecahkan masalah untuk biaya memori dan kurang dari setengah jam downtime.
Anda tidak akan tahu persis jumlah memori yang Anda butuhkan sampai Anda benar-benar menggunakan dalam kehidupan nyata Anda dan bekerja dari sana.
Yang mengatakan, Anda mungkin ingin memverifikasi bahwa aplikasi Anda benar-benar menjadi hambatan. Jalankan monitor kinerja windows untuk melihat statistik i / o disk dan throughput jaringan Anda. Lihat juga tingkat fragmentasi Anda ( Google adalah teman yang baik di sini ). Anda dapat mencoba mengaudit kode untuk masalah yang jelas juga di mana kueri menjadi sangat tidak efisien ( Google lagi ).
Tapi sekali lagi itu semua tergantung pada seberapa parah ini berdampak pada bisnis. Apakah lebih berharga untuk berinvestasi dalam penyetelan, atau cukup buruk untuk melemparkan perangkat keras terlebih dahulu dan kemudian mencoba menyetemnya?
sumber
Cara mudah untuk melihat apakah Anda memerlukan lebih banyak RAM adalah dengan memetakan penghitung perfmon Page Life Expectancy. Penghitung ini memberi tahu Anda berapa lama SQL Server berpikir bahwa data akan disimpan di kolam penyangga sebelum perlu memberikan ruang bagi data lain. Anda ingin nomor ini setinggi mungkin. Dengan 6 Gigs of RAM terinstal (Anda harus memiliki SQL diatur ke max di mungkin sekitar 4 gigs) Anda mungkin hanya akan menyimpan data dalam memori selama beberapa menit paling banyak, ketika seseorang menjalankan laporan besar Anda akan melihat tangki nomor ini ke beberapa detik. Semakin banyak RAM yang Anda miliki, semakin lama data dapat disimpan dalam memori, dan semakin sedikit pembacaan dari disk perlu dilakukan.
Sebagai contoh, sistem yang saya kerjakan saat ini memiliki 256 Gigs RAM dan kami menyimpan data dalam memori sekitar 12000 detik atau lebih.
Tolong jangan meminta nomor target untuk memukul, Anda hanya ingin nomor setinggi mungkin. Tanpa mengetahui BANYAK lagi tentang sistem Anda, saya tidak bisa memberikan angka yang baik untuk menembak.
sumber
Hmmmm. Nah, 6 gigs adalah jumlah ram yang layak, bahkan untuk instalasi MSSQL besar. Anda mungkin benar-benar ingin melihat dan memastikan bahwa kode Anda benar-benar efisien. Transaksi 6 manggung agak tidak biasa ... Saya telah bekerja pada sistem penggajian di seluruh negara bagian yang tidak manggung di atas pemrosesan 1099 akhir tahun ... Dan untuk membuatnya sering berjalan ? Saya tidak tahu Jenis data apa yang Anda kerjakan?
Yang sedang berkata, Anda dapat memasukkan RAM sebanyak yang Anda suka dalam kotak 64 bit, dan ram murah, jadi sebaiknya masukkan sebanyak mungkin di sana ... Tidak dapat benar-benar memiliki terlalu banyak RAM pada server basis data.
Sunting: Ini sangat ketinggalan zaman sekarang. Saya memiliki kotak MSSQL dengan 256 gigs RAM.
sumber
Sebelum Anda mencoba membeli lebih banyak memori (atau komponen lain), saya sarankan menjalankan analisis kinerja di server. Anda dapat melakukan ini sendiri menggunakan perfmon atau Anda dapat melihat menggunakan alat pihak ketiga. Anda harus menganalisis kinerja OS dan SQL server. IMHO, terlalu sering kita siap untuk melemparkan perangkat keras pada masalah sebelum analisis yang tepat telah dilakukan. Untuk semua yang Anda tahu pada titik ini bisa jadi masalah dengan kueri, prosedur tersimpan, rencana eksekusi, disk I / O, pemanfaatan CPU, dll. Dll. Tekanan memori sering kali merupakan gejala dari kemacetan lain dalam sistem.
sumber
seperti yang dikatakan "Satanicpuppy", tidak ada RAM terlalu banyak, tetapi 6GB seharusnya ok, mungkin Anda harus memikirkan kembali apa yang dilakukan server Anda, saya tidak berpikir bahwa Anda memiliki masalah "perangkat keras", Anda harus fokus pada pemrograman SQL Anda ...
sumber
Ketika datang ke server database tidak ada yang namanya "cukup" memori. Tentu, itu tergantung pada apa yang sebenarnya mereka lakukan dan jalankan tetapi jika itu adalah database yang digunakan secara konstan yang mengandung banyak data dan melakukan query yang rumit - 6 GB bisa dengan mudah sangat tidak memadai.
Saya akan mulai dengan memutakhirkan satu server bermasalah ke setidaknya 32 atau 64 GB dan melihat apakah itu membantu. Jika tidak, beralihlah ke penyetelan basis data, pemecahan masalah aplikasi dan debugging - yang semuanya, kecuali seorang idiot yang mendesain database, harganya jauh lebih mahal daripada beberapa batang memori tingkat server (dan bahkan jika seorang idiot mendesainnya, mendapatkan desain yang lebih jelas) kesalahan yang diperbaiki dengan dukungan yang dipertahankan dapat membuktikan tantangan yang cukup besar).
Yang mengatakan, seperti orang lain nyatakan - itu bisa menjadi sesuatu yang menahannya (terlepas dari masalah desain perangkat lunak), seperti kurangnya disk atau kinerja jaringan I / O - mempekerjakan DBA pro untuk hanya melalui pemantauan kinerja SQL dasar untuk hari bisa terbukti bermanfaat.
sumber
Anda harus melihat membangun lebih banyak indeks. Saya berpikir bahwa secara umum, kebanyakan orang di-index database mereka.
Ini masih kode udara, saya belum sepenuhnya diuji, tetapi harus membawa Anda ke arah yang benar
http://accessadp.com/2011/08/22/missing-indexes-great-script-for-determining-roi/
sumber