Pertanyaan Bisakah Anda membantu saya dengan perencanaan kapasitas saya?


Ini adalah sebuah pertanyaan kanonis tentang perencanaan kapasitas

Terkait:

Saya memiliki pertanyaan mengenai perencanaan kapasitas. Dapatkah komunitas Kerusakan Server tolong bantu dengan yang berikut ini:


  • Server apa yang harus saya tangani beberapa angka pengguna?
  • Berapa banyak pengguna yang dapat menggunakan server beberapa spesifikasi menangani?
  • Akan beberapa konfigurasi server cukup cepat untuk kasus penggunaan saya?
  • Saya sedang membangun situs jejaring sosial: jenis perangkat keras apa yang saya butuhkan?
  • Berapa banyak bandwidth yang saya perlukan beberapa proyek?
  • Berapa banyak bandwidth beberapa angka pengguna digunakan dalam beberapa aplikasi?

131
2018-04-30 19:20






Jawaban:


Komunitas Kerusakan Server umumnya tidak dapat membantu Anda dalam perencanaan kapasitas - jawaban terbaik yang dapat kami tawarkan adalah "Benchmark kode Anda pada perangkat keras yang serupa dengan apa yang akan Anda gunakan dalam produksi, identifikasi setiap kemacetan, kemudian tentukan berapa banyak beban kerja yang dapat ditangani oleh perangkat keras Anda saat ini, dan / atau berapa banyak horsepower perangkat keras yang Anda butuhkan untuk menangani beban kerja target Anda".


Ada sejumlah faktor yang berperan dalam perencanaan kapasitas yang kami tidak dapat menilai secara memadai di situs Tanya dan Jawab:

  • Persyaratan kode / perangkat lunak Anda
  • Sumber daya eksternal (basis data, perangkat lunak / situs / server lain)
  • Beban kerja Anda (puncak, rata-rata, antrian)
  • Nilai kinerja bisnis (analisis biaya / manfaat)
  • Harapan kinerja pengguna Anda
  • Setiap perjanjian tingkat layanan / kewajiban kontrak yang mungkin Anda miliki

Melakukan analisis yang tepat pada faktor-faktor ini, dan yang lain, berada di luar lingkup situs tanya-jawab sederhana: Mereka memerlukan pengetahuan rinci tentang lingkungan Anda dan persyaratan yang hanya tim Anda (atau konsultan kompensasi yang memadai) dapat mengumpulkan secara efisien.


Beberapa Aksioma Perencanaan Kapasitas

  1. RAM murah
    Jika Anda mengharapkan aplikasi Anda menggunakan banyak RAM, Anda harus memasukkan RAM sebanyak yang Anda mampu / pas.
  2. Disk murah
    Jika Anda berharap untuk menggunakan banyak disk Anda harus membeli drive besar - banyak dari mereka.
    Penyimpanan SAN / NAS kurang murah, dan biasanya juga harus spec'd besar daripada kecil untuk menghindari upgrade yang mahal nantinya.
  3. Beban kerja bertambah seiring waktu
    Asumsikan kebutuhan sumber daya Anda akan meningkat.
    Ingatlah bahwa peningkatan mungkin tidak simetris (CPU dan RAM dapat naik lebih cepat daripada disk), dan mungkin tidak linier.
  4. Listrik itu mahal
    Meskipun RAM dan disk telah mengalami penurunan harga, biaya listrik terus naik. Semua disk ekstra dan RAM, belum lagi daya CPU, akan meningkatkan tagihan listrik Anda (atau tagihan yang Anda bayarkan ke penyedia Anda). Rencanakan dengan benar.

94
2018-01-17 15:46



Anda harus benar-benar menjatuhkan itu dan menggunakan integrasi dengan bagian-bagian! - Gilles
+1. Dan RAM, seperti yang Anda sarankan dalam aksioma # 1, adalah salah satu dari hal-hal yang memiliki manfaat besar. Misalnya, ini meningkatkan kemampuan Anda untuk lebih baik menggunakan caching, yang pada gilirannya memungkinkan Anda untuk membuat query database lebih sedikit, yang pada gilirannya meringankan beban pada disk dan CPU. Saya sering frustrasi oleh penyedia hosting yang menawarkan CPU cepat dengan server mereka dan jumlah minimal RAM. - Steve Wortham
Saya akan menambahkan ini: Disk kapasitas murah. Disk kinerja menjadi mahal. Terutama karena kami melihat pertumbuhan dalam ukuran disk lebih dari 10 tahun, tetapi hukum fisika belum berubah. Rule of thumb yang saya gunakan (untuk hari ini; Juni 2014) adalah untuk kinerja optimal: 75 IOP per spindle pada SATA, 200 IOP per spindle pada FC, dan 1500 IOP per SSD. Drive SATA besar memberikan rasio IO per gigabyte yang sangat buruk. - Sobrique


Perencanaan Count Mesin Virtual

Ketika datang untuk mencari tahu berapa banyak VM yang harus Anda rencanakan untuk satu host, sebenarnya tidak ada aturan praktis yang benar-benar bagus. Faktanya, hanya ada satu, dan itu hanya bagus:

Jumlah Virtual-Machine biasanya dibatasi oleh RAM, kecuali jika tidak.

Yang tidak terlalu membantu. Jika VM tersebut akan menjalankan aplikasi CPU rendah, maka limiter Anda akan didasarkan pada RAM. Setiap platform VM memiliki kemampuannya sendiri untuk menambah jumlah RAM, jadi tidak semudah TOTAL_RAM / Per-VM-RAM = MachineCount, tetapi angka tersebut merupakan item perencanaan yang baik.

Tetapi bagaimana jika VM Anda melakukan hal-hal selain low-CPU packet-slinging?


Jumlah mesin virtual dibatasi oleh tujuh sumber daya diskrit yang tersedia untuk mesin host:

  • Hypervisor VMware, Xen, HyperV, KVM, apa saja. Masing-masing memiliki fitur-fitur count-berdampak sendiri. Beberapa sangat bagus dalam deduplikasi halaman memori, yang lain tidak begitu banyak. Beberapa tidak mengizinkan kelebihan kapasitas CPU, beberapa lakukan.
  • Kecepatan Inti CPU Ini membatasi kinerja single-threaded maksimum yang dapat dijalankan oleh VM. 36 core dari 1,8 GHz CPU mungkin 64,8 GHz CPU pada host, tetapi tidak ada satu thread pun yang akan berjalan lebih cepat dari 1,8 GHz.
  • CPU Core Count Ini, dengan kecepatan inti, menggambarkan langit-langit kinerja CPU maksimal yang dapat Anda alami.
  • RAM Sistem Seperti yang dijelaskan di atas, ini membatasi jumlah VM yang dapat Anda jalankan. Beberapa hypervisor lebih baik daripada yang lain pada hal-hal seperti deduplikasi halaman memori, jadi jika Anda menjalankan 100 VM identik Anda dapat mengemas lebih banyak dari ini pada sistem deduplikasi semacam itu daripada jika Anda menjalankan 100 VM yang benar-benar berbeda.
  • Ukuran Disk Setiap gambar OS membutuhkan jumlah ruang tertentu. Anda membutuhkan cukup ruang untuk menyimpan semuanya. Oleh karena itu, ukuran disk menempatkan batas atas pada berapa banyak VM yang dapat Anda hosting.
  • I / O Bandwidth Disk yang mendasari VM memiliki maksimum berapa banyak I / Os per detik yang bisa ditangani. Jika Anda terlalu banyak membuangnya, sistem akan macet menunggu I / O selesai. Ini menempatkan batas atas pada berapa banyak I / O yang memakan VM yang dapat Anda jalankan.
  • Bandwidth Jaringan Untuk VM yang menggunakan jaringan, bandwidth jaringan yang tersedia akan memberi batasan pada berapa banyak VM yang dapat Anda jalankan pada host yang diberikan.

Semua ini dapat menjadi hal yang Anda tinjau, semuanya tergantung pada apa yang Anda lakukan dengan VM Anda. Beberapa hal yang perlu diingat:

  • Tidak ada yang namanya sistem generik.
  • Tidak ada yang namanya web-server umum, karena kode aplikasi dapat berjalan dari nyaris-bergerak-jarum CDN-pengaturan gaya, untuk hal-hal dalam-retak besar seperti transcoding video.
  • Tidak ada yang namanya server database generik. Ini dapat berjalan dari sistem kecil yang digunakan hanya untuk sesi-pelacakan-negara, ke yang sangat besar.

Untuk mengetahui berapa banyak VM yang dapat Anda masukkan ke dalam sistem host, Anda perlu mengetahui bagaimana sistem Anda berjalan dan apa yang mereka perlukan untuk berjalan dengan baik. Setelah Anda mengetahuinya, Anda dapat melakukan perencanaan hitung. Dan lebih baik lagi, cari tahu seberapa keras Anda perlu membuat sistem host Anda!


42
2018-02-06 20:32



di atas segalanya, lakukan menggunakan sistem berbasis vm pada dua server fisik terpisah dengan vm tidak terikat. ini memungkinkan kegagalan perangkat keras tanpa kehilangan seluruh sistem. vm dapat berpindah antar server yang identik tanpa kehilangan data. hanya sesi yang hilang, kemudian dibangun kembali. secara pribadi, saya akan memasang iklan ke perusahaan hosting yang menawarkan layanan ini (google atau amazon). mereka mahal tetapi jauh lebih sedikit daripada menjalankan milik Anda sendiri. - Random-IT
Hal yang saya lihat paling sering berukuran dalam implementasi VM adalah disk I / O. Kebanyakan orang memahami ruang disk, kecepatan CPU, dan memori. Mereka melupakan kinerja disk itu. - Dan Pritts


Pastikan Anda mengajukan pertanyaan yang tepat.

  • Komputer itu murah
  • Kebutuhan masa depan sangat sulit diprediksi
  • Rencanakan cara mengukur, bukan apa yang harus dibeli sebelum waktunya

Jika Anda tidak tahu apa yang Anda butuhkan, itu berarti Anda tidak perlu terlalu banyak. Jika Anda memiliki situs web yang panas, Anda mungkin juga memiliki tim operasi yang tahu berapa banyak ram, disk, io, jaringan dll ... kebutuhan aplikasi Anda. Jika Anda sedang dalam tahap bermimpi, Anda harus mulai dengan desktop Anda dan bekerja dengan cara Anda.

Pastikan Anda memiliki ide bagaimana Anda akan menskala ketika segalanya menjadi lebih besar. Bisakah Anda menambahkan lebih banyak server di belakang load balancer? Bisakah Anda beling server redis?

Juga, memiliki pusat data Anda sendiri menyebalkan. Pusat data (meskipun hanya satu komputer) adalah pengalih perhatian dari tujuan Anda yang sebenarnya. Anda tidak bisa hanya membeli komputer, menyalakannya, dan pergi. Anda memerlukan AC, penyaringan udara, tenaga yang andal, internet yang andal, cadangan, suku cadang, ruang fisik untuk tumbuh, kapasitas daya untuk tumbuh, kabel listrik yang tidak tersandung dan jutaan sakit kepala lainnya.


4