Jenis server apa yang saya butuhkan untuk menangani 10 juta permintaan dan permintaan mySQL sehari? [Tutup]

23

Saya seorang pemula administrasi server dan saya sedang mencari layanan hosting yang kuat untuk meng-host situs web baru saya. Situs web ini pada dasarnya adalah back-end dari game online seluler, dan itu akan:

  • menangani hingga 10 juta permintaan HTTPS dan permintaan mySQL sehari
  • menyimpan hingga 2000 GB file di hard disk
  • Transfer mungkin 5000 GB data masuk dan keluar per bulan
  • ini berjalan pada PHP dan mySQL
  • memiliki 10 juta catatan dalam database mySQL, untuk setiap catatan ada 5-10 bidang, masing-masing sekitar 100 byte

Saya benar-benar tidak tahu jenis server apa yang saya butuhkan untuk menangani persyaratan ini, pertanyaan saya adalah:

  1. CPU / RAM apa yang saya butuhkan untuk dedicated server atau VPS?
  2. Perusahaan hosting apa yang dapat menawarkan dedicated server atau VPS semacam ini?
  3. Bagaimana dengan cloud computing? Saya telah meneliti Amazon EC2 tetapi tampaknya rumit bagi saya. Dan saya sudah menghubungi Rackspace tetapi anehnya mereka mengatakan Cloudsites tidak cocok untuk kebutuhan saya. Saya ingin tahu apakah ada perusahaan cloud hosting lainnya.
  4. Adakah metode alternatif lain?
Calvin
sumber
kami menyiasati ini dengan 2 server linux dengan 8 gigs ram, mysql adalah cluster mysql dan DB disimpan dalam memori cepat cepat, cpu tidak pernah benar-benar banyak jika Anda menggunakan distro yang baik, dan disk hanya perlu digunakan mengambil snapshot per jam memberi Anda redundansi jika terjadi kegagalan. juga Anda mungkin ingin memiliki mysqltuner diinstal sehingga Anda dapat mengawasi indeks dll dan membuat penggunaan terbaik dari semuanya dan juga menambahkan banyak indeks dan menyimpan log pada permintaan lambat, karena untuk web ini bisa sangat murah hanya menambahkan beban balancer di bagian depan untuk memecah lalu lintas
minus 4
Mengapa tidak menggunakan layanan cloud? Azure, Amazon, RackSpace, GoGrid, Heroku?
bbqchickenrobot

Jawaban:

33

Desktop murah?

Mari kita masuk ke matematika.

  • 10 juta permintaan.
  • Itu terurai ke 416667 permintaan per jam.
  • Itu terurai menjadi 6944 permintaan per menit.
  • Itu terurai menjadi 116 permintaan per detik.

Gandakan itu (beban puncak) dan kita berbicara tentang beban yang bisa ditangani desktop quad core murah JIKA pertanyaannya cukup sederhana, dan Anda tidak benar-benar mengatakan betapa rumitnya mereka.

  • 5000 GB per bulan sepele - serius, matematika yang sama berlaku.
  • Itu rusak menjadi 208GB / hari
  • Itu rusak hingga 8GB / jam
  • Itu terurai menjadi 148MB / menit
  • Itu terurai menjadi 2,5MB / detik, 25Mbit. Ganda untuk puncak - 50Mbit, sepele untuk semua pusat hosting. Akan dikenakan biaya.

  • Simpan 2000 GB pada hard disk. Itu adalah hard disk 2x2000 GB dalam RAID? Kecuali: itu untuk database, sebuah memiliki banyak IO kompleks, maka itu adalah apa saja antara beberapa lusin cakram dan BANYAK cakram SAS 15GB 15.000RPM dalam RAID 10 (sekitar 60 cakram) untuk mendapatkan I / O yang diperlukan - ini pertanyaan tidak dapat dijawab tanpa BANYAK info lebih lanjut tentang pola akses data.

  • Menjalankan PHP dan MySQL - Ponsel saya dapat melakukan itu;) Pertanyaannya adalah seberapa rumit aplikasi tersebut. MySQL MUNGKIN atau MUNGKIN TIDAK menjadi solusi yang dapat diterima di sini, BTW l. - itu akan membutuhkan lebih banyak pengujian. Ada alasan mengapa sebagian orang masih menggunakan basis data komersial besar lainnya.

  • CPU / Ram apa yang saya perlukan untuk Server atau VPS Khusus?

Orang akan mengatakan itu tergantung pada logika (berapa banyak perhitungan di bagian PHP, kecerdasan atau kekurangan programmer dan banyak pertanyaan lainnya.

Serius, ini adalah pengaturan non-sepele. Dapatkan beberapa spesialis memeriksanya.

Pada dasarnya Anda harus turun dan menyelesaikan pekerjaan rumah. Banyak pertanyaan yang tidak dapat dijawab dalam formulir ini. Terutama karena Anda tampaknya tidak peduli dengan data Anda ...

  • Cadangan?
  • Tidak ada rencana darurat? Maksud saya, server mati - jadi Anda OK saja dengan situs dimatikan selama berhari-hari ketika penggantian dikonfigurasi?
TomTom
sumber
terima kasih untuk balasan Anda. phpnya sederhana, saya kira beban utamanya ada di mySQL, saya menguji beberapa pertanyaan mySQL di laptop saya (Core2 Duo) dengan WAMP di Windows. dengan catatan 10 mllions di mySQL, rata-rata setiap permintaan menghabiskan 0,1 detik. seberapa kuat Quad Core menangani kueri mySQL?
Calvin
2
Lupakan quad core. Laptop Anda SUCKS di IO - dan IO adalah tempat database tidak dibatasi. Anda memiliki SATU cakram keras, yaitu SLOW dan ROBUST (latop). Server menggunakan banyak cakram keras yang CEPAT (tetapi tidak kuat). Saya menggunakan quad core SQL Server fron MS dan dapat menangani lebih dari 500 batch per detik pada pemilihan sederhana (satu batch menjadi satu pilih) tanpa memaksimalkan CPU - tetapi saya mendapatkan BANYAK aktivitas disk pada subsystme disk yang mungkin lebih dari 30 kali lebih cepat dari milik Anda (dan itu belum mengesankan). Cakram adalah batasnya. Ditambah pemrograman yang tepat.
TomTom
1
Lalu lintas ssl Anda perlu dienkripsi / didekripsi, Anda mungkin ingin melepasnya di balancer, dan melakukan proxy terbalik ke server http normal. Ini harus menjaga latensi tetap rendah. Anda juga dapat melakukan enkripsi pada perangkat keras juga ....... en.wikipedia.org/wiki/SSL_acceleration jika anggaran bukan masalah untuk basis data Anda menggunakan ramsan.com/success/ccpgames.htm
The Unix Janitor
7

Untuk menambahkan beberapa pengalaman saya yang mungkin bermanfaat:

  • Seperti yang TomTom sebutkan, sulit / tidak mungkin untuk memberikan spesifikasi yang tepat karena banyak tergantung pada desain dan implementasi aplikasi Anda. Perangkat keras yang memberi saya atau orang lain permintaan X / detik mungkin tidak berfungsi dengan baik untuk Anda.
  • Saya memiliki server MySQL berdedikasi rendah (Intel Core2 Duo E4600 2,40 GHz, RAM 4 GB) yang melayani rata-rata 100 permintaan / detik (hampir 10 juta / hari) dengan tingkat idle CPU 90%. Selain beberapa tweak dasar untuk konfigurasi itu berjalan dengan baik karena terlalu banyak membaca (+ 95% membaca) dan set rekaman aktif mudah terkandung dalam memori. Pertimbangkan ukuran set aktif Anda ketika memilih jumlah RAM server karena dapat membuat perbedaan besar. Pastikan Anda memahami perbedaan antara ukuran database Anda dan ukuran set rekaman aktif. Sebagai contoh, total database saya ~ 7GB tetapi set aktif kemungkinan hanya 100MB.
  • Demikian pula, saya memiliki server Apache dengan spesifikasi serupa yang melayani ~ 1 juta permintaan per hari yang memiliki rata-rata tingkat CPU idle ~ 95%. Permintaan adalah campuran dari data peta AJAX yang sangat sederhana, pertanyaan dan halaman MediaWiki yang lebih kompleks.
  • Melakukan pembandingan terhadap aplikasi spesifik Anda adalah awal yang baik dalam mencoba menentukan dengan tepat apa yang Anda butuhkan. Anda tidak ingin di bawah perkiraan tetapi terlalu banyak memperkirakan bisa sama buruknya karena potensi buang-buang uang dan usaha.
  • Pertimbangkan tidak hanya tingkat permintaan rata-rata tetapi tingkat puncak. Anda tidak ingin server yang nyaris tidak bisa menangani tingkat rata-rata karena tingkat permintaan dapat sangat bervariasi sepanjang hari, minggu, dan bulan. Misalnya, saya bisa mendapatkan 3-4x lalu lintas selama jam sibuk di akhir pekan seperti yang saya lakukan di jam minimum selama seminggu. Berapa bervariasi tergantung pada aplikasi dan basis pengguna Anda.
  • Bisakah Anda melakukan cache permintaan database / HTTP Anda? Ini secara drastis dapat meningkatkan tingkat permintaan Anda dengan perangkat keras yang lebih murah / kurang tergantung pada seberapa banyak Anda dapat melakukan cache.
  • Pertimbangkan opsi penskalaan Anda untuk pertumbuhan di masa depan sekarang dan bukan nanti. Pilihan yang baik mungkin menggunakan penskalaan horizontal yang memungkinkan Anda memulai dengan perangkat keras minimal dan mudah tumbuh sesuai kebutuhan.
  • Desain lapisan aplikasi Anda yang tepat dapat memiliki efek besar pada kinerja utamanya. Kueri SQL yang buruk di atas meja tanpa indeks dapat menjadi urutan besarnya lebih lambat dari yang dirancang dengan benar. Demikian pula, server Apache / MySQL yang dikonfigurasi dengan buruk bisa berkali-kali lebih lambat daripada saat pemasangan dengan benar.
uesp
sumber