Lebih banyak RAM vs. lebih banyak server

9

Baru-baru ini saya ditanya, "Apakah Anda tahu kapan harus memutuskan antara mencari RAM lebih banyak atau lebih banyak server?" (dalam konteks penskalaan aplikasi penambangan data).

Saya tidak tahu, jadi apa beberapa cara untuk memutuskan? Saya hanya memiliki sedikit pengetahuan tentang arsitektur dan penskalaan (pemahaman saya tentang memori komputer dan apa yang dilakukan server terbatas pada dasar-dasar tingkat tinggi), jadi tip tentang belajar lebih banyak tentang hal-hal ini secara umum juga sangat diterima.


sumber
3
Bisakah saya memiliki keduanya?
Dirk Eddelbuettel
1
Lebih banyak RAM dalam setiap contoh yang dapat saya pikirkan ... (kecuali server maks pada RAM)
jcolebrand
3
Seperti kebanyakan sysadmin thigns. Jawaban terbaik jika memungkinkan adalah mengumpulkan data pada pengembang atau sistem produksi dan kemudian membuat keputusan berdasarkan data yang telah Anda kumpulkan.
Zoredache
Pertanyaan yang Anda tanyakan adalah apakah akan meningkatkan atau memperkecil.
micmcg
sebagian besar perangkat lunak penambangan data dirancang untuk satu komputer. Oleh karena itu lebih banyak RAM. Jika Anda menggunakan Mahout atau parallel-R atau apa yang Anda miliki, maka lebih banyak server. Saya akan menyewa server Amazon AWS untuk percobaan untuk menemukan kombinasi # server / ram terbaik.
Neil McGuigan

Jawaban:

8

"Apakah Anda tahu kapan harus memutuskan antara mencari RAM lebih banyak atau lebih banyak server?" (dalam konteks penskalaan aplikasi penambangan data).

Jawabannya adalah segera setelah Anda memberi saya metrik untuk server yang dimaksud, saya akan memberi tahu Anda yang mana (atau jika perlu menambahkan keduanya). Jenis penyetelan ini bukan voodoo (kecuali Anda menggunakan aplikasi tanpa instrumentasi dan OS server tanpa instrumentasi - maka ya itu voodoo) itu adalah sains. Ukur aplikasi dan server. Singkatnya menggunakan metrik pemantauan mencari tahu di mana hambatan kinerja dan menambahkan lebih banyak.

Jim B
sumber
Tidak, ini masih voodoo, tetapi Anda adalah seorang dukun! Lebih tepatnya .. bagaimana orang baru menggunakan jawaban ini untuk menyelesaikan masalahnya? Apa metrik dasar yang harus dia periksa, dan bagaimana dia tahu angka apa yang bermakna? Dapatkan poin saya ...
tomjedrz
Jenis ini mengingatkan saya pada lelucon lama. officediversions.com/discover/modules/wfsection/…
tomjedrz
Jawaban tentang metrik dasar tergantung pada sistem mana. Pertanyaan ini sangat umum sehingga tidak mungkin memberikan jawaban yang lebih spesifik selain dasar-dasarnya (CPU, memori, disk, dll, dan monitor aplikasi). Mengingat orang baru yang hypthetical, mereka tidak bisa mendapatkan jawaban untuk masalah ini karena Anda pertama-tama perlu tahu cara memonitor server yang sedang ditanyai - dan itu akan menjadi pertanyaan yang sepenuhnya terpisah
Jim B
5

Pada umumnya ada sedikit voodoo (atau setidaknya trial and error) dalam peningkatan kinerja server / aplikasi.

Aturan umum untuk pertanyaan spesifik yang diajukan adalah pertama-tama menambah memori sampai tidak dapat ditingkatkan lagi ATAU sampai lebih banyak memori tidak lagi meningkatkan kinerja. Dengan memori yang relatif murah, mungkin lebih mudah untuk memaksimalkan memori. Juga, jika aplikasi ini berat disk, meningkatkan ke drive kecepatan tinggi atau pengontrol kinerja tinggi dapat membuat perbedaan.

Namun, sifat pertanyaan yang sangat umum membuat saya berpikir bahwa belum ada upaya lain untuk meningkatkan kinerja. Saya setuju bahwa perangkat keras itu murah, jadi bahkan melempar lebih banyak server pada suatu masalah cukup mudah untuk diselesaikan. Tapi, saya juga akan memastikan bahwa jalan lain, khususnya penyempurnaan OS dan database, telah dilakukan. Terkadang perubahan kecil ke database, OS, atau bahkan konfigurasi aplikasi dapat menghasilkan peningkatan kinerja yang sangat besar.

Cari di situs ini dengan OS, database, dan aplikasi spesifik Anda dan Anda mungkin akan mendapatkan emas.

tomjedrz
sumber
5

Sebagai arsitek perusahaan, saya telah menangani masalah ini hampir setiap hari. Penskalaan vertikal atau horizontal?

Apa kebutuhan anda

Apakah Anda perlu mendukung lebih banyak pengguna? Apakah Anda perlu meningkatkan kecepatan layanan? Apakah Anda membutuhkan keduanya? Apakah Anda memerlukan ketersediaan tinggi 99,9999 atau dapatkah pengguna Anda mengambil waktu henti?

Untuk memulai, Anda perlu menangkap metrik kinerja pada sistem saat ini. Jumlah pengguna aktif, RAM dan CPU dimuat, Disk I / O - cari tahu di mana kemacetan Anda.

Kemungkinan solusi berdasarkan masalah: Mulailah dengan optimalisasi sumber daya saat ini. Jika aplikasi Anda digerakkan oleh database, optimalkan basis data dengan cache kueri, indeks, dll. Jika Anda berbagi server dengan aplikasi lain, cobalah pindah ke server khusus. (Lihatlah ke virtualisasi untuk aplikasi yang kurang aktif / kritis untuk membebaskan sumber daya khusus).

mesin saat ini berada pada kapasitas penuh, RAM dan CPU sarat muatan, disk I / O tinggi - menghitung biaya untuk menambah RAM, dapatkah Anda beralih ke disk I / O yang lebih cepat (RAID, SATA menggantikan ATA)?

Jika Anda membutuhkan ketersediaan tinggi maka Anda mungkin perlu menambahkan perangkat keras dan load balancing.

Apakah lebih murah untuk menambahkan peningkatan perangkat keras atau menambah server baru? Yang cocok dengan sasaran dan pertumbuhan jangka panjang?

Kapan waktu terbaik departemen TI Anda menghabiskan uang? Apakah Anda memiliki dana sekarang atau Anda ingin mengalihkan pengeluaran ke kuartal / tahun lain? Jika dana bermasalah, optimalkan sekarang atau jelajahi membebaskan perangkat keras dari aplikasi lain untuk menambahkan solusi penyeimbangan beban temp.

Jangan takut untuk mengeksplorasi berbagai solusi. Vendor mungkin ingin Anda membeli solusi sentris penyimpanan SAN yang seimbang di mana server baru dengan iSCSI RAID 10 on board akan bekerja dengan biaya 10 persen.

Jika CPU Anda masih banyak dimuat setelah optimasi maka Anda perlu menambah / mengganti perangkat keras. Jika disk I / O Anda adalah penghambat dan Anda tidak dapat meningkatkan teknologi penyimpanan maka Anda perlu mengganti perangkat keras atau menambahkan solusi penyimpanan jaringan / penyimpanan terlampir.

Tangkap metrik kinerja. Optimalkan, perbaiki, dan tangkap metrik lagi. Terus mendokumentasikan peningkatan / penurunan kinerja sehingga Anda dapat menyerahkan laporan yang mendokumentasikan berapa banyak yang Anda habiskan dan berapa banyak hasil yang dihasilkan. Ini adalah jenis kisah sukses yang mungkin yang membuat admin menjadi arsitek, arsitek menjadi manajer proyek dan PM ke manajemen atas ketika dilakukan dengan benar.

linux911
sumber
2

Apakah Anda paging? Apakah Anda akan menggunakan RAM ke cache disk? Apakah Anda CPU terikat dengan RAM gratis?

Jika Anda paging dan / atau dapat menggunakan RAM untuk cache, maka dapatkan lebih banyak RAM. Jika Anda tidak mengalami tekanan RAM, maka itu adalah hal lain.

Will Hartung
sumber
2

RAM murah. Anda harus selalu naik itu terlebih dahulu ke titik di mana Anda memiliki jumlah paling ekonomis di sana (misalnya DIMM 4GB sangat mahal sehingga saya tidak akan repot-repot dengan mereka).

Kemudian jelajahi scaling sideways (lebih banyak server). Pertimbangkan perangkat keras konsumen yang murah vs. bagian server yang mahal tetapi perkirakan kegagalan dan bangun taksiran failover ke dalam kapasitas pemrosesan total Anda.

Pada dasarnya, lakukan Google .

Oli
sumber
1

OS apa yang Anda gunakan, berapa banyak RAM yang didukungnya dan berapa banyak RAM yang Anda miliki juga merupakan pertanyaan untuk diajukan. Jika Anda berada pada batas OS 32-bit, membeli lebih banyak RAM tidak akan ada gunanya bagi Anda. Jika Anda menggunakan Windows, SKU tertentu terbatas pada jumlah RAM tertentu yang tidak persis terkait dengan batas 32-bit.


sumber
1

Beberapa orang tampaknya berpikir bahwa menambahkan RAM adalah perbaikan ajaib. Ini hanya membantu jika RAM jika hambatan.

Rob Moir
sumber
Ini bukan "sihir", tetapi relatif murah dan merupakan upaya pertama yang baik sebagian besar waktu.
tomjedrz
1
@ tomjedrz: Upaya pertama yang bagus kecuali saat tidak. Ini benar-benar sangat sederhana - apakah kita melakukan 'administrasi sistem sebagai ilmu' dan menambahkan RAM ke mesin setelah kami melakukan tes dan pemantauan sumber daya yang menunjukkan dibutuhkannya, atau apakah kita melakukan 'administrasi sistem sebagai kultus agama' dan menambahkan RAM ke sebuah mesin karena itu yang dikatakan oleh gulungan agama adalah doa yang benar untuk server yang agak lambat? Secara pribadi saya lebih suka pendekatan ilmiah.
Rob Moir
0

Lebih banyak RAM = lebih banyak mesin virtual.

Jadi saya kira lebih banyak RAM = lebih banyak server !!

JohnyD
sumber
1
lebih banyak mesin virtual lebih iops yang diperlukan, ram hanyalah salah satu dari banyak sumber daya untuk bermain.
tony roth