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.
Jawaban:
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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 .
sumber
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
Beberapa orang tampaknya berpikir bahwa menambahkan RAM adalah perbaikan ajaib. Ini hanya membantu jika RAM jika hambatan.
sumber
Lebih banyak RAM = lebih banyak mesin virtual.
Jadi saya kira lebih banyak RAM = lebih banyak server !!
sumber