Pertimbangan saat memilih prosesor AMD dari Intel

13

Saya bekerja untuk sebuah perusahaan dengan banyak aplikasi web warisan LAMP, di mana kami mencoba menyegarkan perangkat keras kami dari ~ 250 server fisik hingga ~ 40 server baru dengan virtualisasi. Kami telah menerima dua kutipan dari vendor - satu menyarankan prosesor Intel, AMD lainnya.

Satu hal yang saya sukai tentang core-counts tinggi dengan AMD, adalah bahwa kita akan dapat mendedikasikan core untuk VM, yang berarti kita memiliki peluang lebih rendah untuk aplikasi yang saling mengganggu satu sama lain karena paku, yang pada tingkat tertentu lebih penting bagi saya daripada kinerja puncak.

Pertimbangan lain yang ada dalam pikiran saya adalah:

  • Konsumsi daya mungkin berbeda (bukan masalah dalam kasus kami.)
  • Instruksi CPU seperti CRC32 (SSE 4.2) tidak akan didukung (Edit: MySQL 5.6 tampaknya mendukung SSE4.2. Tidak yakin tentang Apache)
  • MySQL tidak skala sempurna setelah ~ 16 / ~ 32 core (Saya bersedia menerima trade off ini.)

Pertimbangan apa lagi yang saya lewatkan?

(Catatan untuk moderator: Saya mengetahui utas ini - saya menganggap pertanyaannya sedikit berbeda.)


Sunting: Asumsikan bahwa tugas-tugasnya sangat paralel (webservers), dan saya tidak peduli tentang server basis data yang tidak begitu paralel.

Morgan Tocker
sumber
Anda mungkin menemukan ini menarik: it20.info/2007/10/intel-amd-vmware-and-aircrafts
ToastMan
Jika aplikasi Anda dapat membagi kueri baca / tulis ke kumpulan server yang berbeda, Anda mungkin dapat menghindari beberapa masalah kinerja MySQL dengan menjalankan instance kedua untuk slave read off. Saya tidak cukup tahu tentang arsitektur atau beban kerja Anda untuk mengetahui apakah ini adalah ide yang bisa diterapkan atau apakah ini hanya akan menambah satu ton overhead dan kompleksitas yang tidak perlu, tetapi ini merupakan pilihan untuk dipertimbangkan.
jgoldschrafe
Saya terbiasa dengan cara membaca / menulis split. Ini tidak cocok untuk peningkatan kinerja dalam kasus ini.
Morgan Tocker

Jawaban:

10

Ada banyak pers mengenai penawaran prosesor AMD terbaru, yang disebut Bulldozer. Versi "Server" dari bagian ini belum keluar, tetapi penawaran desktop adalah pemandangan bagus ke beberapa masalah potensial dari hal-hal baru.

Sedangkan untuk generasi bagian Server saat ini, semuanya adalah rekomendasi yang cukup baik di tingkat generik. Pekerjaan melayani web dan (sebagian besar) basis data sebagian besar berbasis Integer, dan CPU AMD bekerja dengan baik dengan perhitungan Integer. Selain itu, penyajian web (umumnya) merupakan masalah yang dapat sangat diparalelkan. AMD berfokus agak khusus pada "banyak core yang membuat pekerjaan lebih cepat", dan LAMP (sekali lagi, secara umum) cenderung merespons dengan baik.

Satu area yang Anda benar-benar perlu perhatikan adalah dependensi single-thread dalam aplikasi Anda. Komponen AMD tidak berskala jauh seperti komponen Intel, sehingga proses yang pada dasarnya single-thread dapat menghambat keseluruhan sistem Anda jauh lebih cepat daripada pada bagian CPU yang lebih cepat. Hanya Anda yang tahu apakah ini berlaku untuk Anda atau tidak. Operasi basis data tertentu mungkin lebih baik dilayani dari prosesor Intel yang lebih cepat dengan jumlah inti lebih kecil hanya agar beberapa benang gemuk itu benar-benar menjerit.

Kode aplikasi juga penting di sini. Beberapa proses server web yang sudah berjalan lama dapat mengunyah banyak waktu single-thread dan juga menginginkan jam yang lebih cepat. Itu mungkin dapat dipecahkan dengan menulis ulang kebutuhan untuk proses yang berjalan lama itu, tetapi sampai saat itu jam yang lebih cepat akan lebih baik.

Tetapi secara umum, untuk beban kerja gaya banyak-o-webserver-vm, bagian-bagian 12-inti dapat berskala sangat jauh. Jika Anda mengalami beberapa masalah single-thread, pergi dengan bagian 8-core clock lebih tinggi akan menjadi kompromi yang dapat diterima.

sysadmin1138
sumber
Terima kasih, sayangnya sistem AMD tidak akan menjadi buldoser. Ini adalah AMD Opteron 6140 (atau serupa).
Morgan Tocker
@MorganTocker Ketika itu terjadi, saya terbiasa dengan kelas CPU itu, dan untuk itulah saya menulis posting saya. Bulldozer memiliki beberapa masalah khusus yang tidak saya bahas.
sysadmin1138
4

Untuk sebagian besar, Anda akan menemukan kedua prosesor sangat sebanding. Prosesor AMD memiliki sedikit keunggulan dalam kecepatan RAM (biasanya) karena saluran ke-4. Prosesor Intel umumnya memiliki CPI yang lebih rendah (mungkin lebih dengan HT , meskipun sangat tergantung pada beban kerja). AMD umumnya lebih murah.

Sebagian besar dari faktor-faktor ini akan memberikan keunggulan bagi satu atau yang lain, tergantung pada beban kerja Anda. Tidak ada yang akan secara signifikan lebih buruk daripada yang lain (dengan asumsi konfigurasi waras dan kira-kira sama dengan CapEx).

Chris S
sumber
2

Anda harus mempertimbangkan perbedaan kinerja yang dibawa oleh arsitektur RAM yang berbeda, dan apakah itu merupakan faktor penentu bagi organisasi Anda.

Juga sebagai sedikit catatan, sementara Anda mungkin tidak peduli dengan kinerja puncak, jika VM Anda tidak akan memiliki beberapa inti masing-masing dan / atau tugas-tugas khusus dalam single-threaded, ada keuntungan kinerja yang cukup besar di intel per inti dari AMD, bahkan jika jumlah inti total kurang.

sandroid
sumber
Asumsikan bahwa aplikasi kami sesuai multi-threaded (webservers; bersedia menerima bahwa MySQL tidak sepenuhnya).
Morgan Tocker
2

Perbedaan utama adalah dalam pendekatan; di mid-range, AMD memiliki sedikit penekanan pada core di bagian yang berharga sekitar seperti bagian Intel. Bagian Intel akan memiliki lebih sedikit core yang lebih tinggi.

Jadi, untuk beban kerja aplikasi web tervirtualisasi, Anda mungkin ingin memilih sistem AMD.

Kecuali ada perbedaan harga yang besar, saya tidak akan khawatir tentang dolar. Saya akan melihat lebih ke subsistem IO. Dan, TCO pada 40 server sebagian besar akan mendukung, lisensi perangkat lunak, jika ada, dan penempatan staf, mungkin bukan server itu sendiri.

Minimal, Anda perlu melakukan sesuatu untuk diri Anda sendiri, membawa kedua vendor, dan menjalankan sistem Anda pada perangkat keras mereka sebelum melakukan ke 40 server dari salah satu. Hanya Anda yang dapat menjawab pertanyaan dengan benar untuk beban kerja khusus Anda.

alphadogg
sumber
Terima kasih atas jawaban Anda! Kami tidak memiliki satu beban kerja - kami memiliki beberapa. Jadi untuk memasukkan vendor, kita perlu melakukan migrasi penuh, dan kemudian bermigrasi lagi untuk mencoba keduanya. Saya menyadari itu adalah yang optimal, tidak praktis dalam kasus kami. Kita dapat memilih sejumlah kecil peran yang akan dipindahkan dan diproyeksikan, tetapi untuk melakukan itu kita perlu tahu apa yang harus kita ukur / perhatikan; maka pertanyaan saya;)
Morgan Tocker
Dengan beban kerja, maksud saya Anda memiliki satu beban kerja KESELURUHAN yang terdiri dari (mungkin) banyak server yang berbeda melakukan hal yang berbeda. Anda harus dapat mengkonversi subset dari server kunci ke gambar virtual dengan cukup mudah saat ini (dengan perangkat lunak yang dapat membantu ini) yang dapat dimuat ke server yang akan Anda beli. Bukan tugas yang bisa diabaikan, tetapi satu-satunya cara untuk memastikan bahwa tidak hanya CPU, tetapi subsistem IO dan yang lainnya berfungsi sesuai keinginan Anda. Kalau tidak, semua orang bebas dari tangan dan menebak-nebak. :)
alphadogg
1

Satu hal lagi untuk dibuang di sana, berhati-hatilah jika Anda menggunakan virtualisasi jenis apa pun yang memindahkan para tamu dari Intel ke AMD bisa menjadi masalah nyata dan pengelompokan lintas merek tidak ada dalam kartu sama sekali. Menempel satu platform untuk setiap cluster dan menerima bahwa sulit untuk beralih dari satu ke yang lain.

Menandai
sumber
Migrasi langsung antara arsitektur dengan KVM tampaknya sebagian besar tidak menjadi masalah pada 64-bit: linux-kvm.org/page/…
Ophidian
Pengguna mengatakan "legacy LAMP"; baunya seperti ada 32-bit tamu untuk saya. Tetap saja menyenangkan mengetahui bahwa KVM mengatasi masalah! Terima kasih atas catatannya.
Tandai
Ya, beberapa tamu 32-bit, tetapi kami berencana untuk pindah dan semuanya 64-bit.
Morgan Tocker