MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mengapa kinerja Mongodb lebih baik di Linux daripada di Windows?

Pertama:semua sistem file yang tersedia di server Windows 2008 sangat, sangat tidak efisien. Dibandingkan dengan XFS atau ext4, kecepatannya hingga 40% lebih lambat saat sistem file Windows dan Linux dioptimalkan.

Kedua:latensi mungkin menjadi masalah. Tumpukan jaringan pada sistem Linux saat ini lebih cepat daripada di server W2008.

Ketiga:jika Anda memiliki firewall yang berjalan di kotak Anda, latensi menjadi masalah yang lebih besar untuk akses jarak jauh. Sementara iptables Linux' cukup cepat dan efisien sehingga sebagian besar peralatan firewall didasarkan padanya, firewall yang tersedia untuk Windows tidak, karena berbagai alasan.

Plus:Windows tidak seefisien RAM seperti Linux. MongoDB menggunakan RAM sebanyak mungkin (sampai titik yang dibutuhkan), misalnya untuk menyimpan (salinan) file indeks di RAM. Windows mengambil bagian yang jauh lebih besar dari RAM yang tersedia daripada mesin Linux. Jadi file indeks mungkin dibaca dari disk daripada dari RAM, yang jauh lebih lambat.

Intinya:adalah Ide yang Sangat Buruk™ untuk menjalankan mongoDB produksi pada sistem Windows.

EDIT

Sesuai permintaan di komentar:

  • Mengenai kecepatan sistem file:Membandingkan kinerja I/O Sistem File:RedHat Enterprise 6 vs. Microsoft Windows Server 2012
  • Untuk penggunaan RAM yang tidak efisien, Anda mungkin ingin memeriksanya sendiri. Berapa banyak RAM yang digunakan sistem Windows Server saat idle? Bagaimana ini dibandingkan dengan pemalasan Server Linux yang diberikan? Mari kita bersikap baik dan berasumsi bahwa server Windows hanya membutuhkan 128M untuk GUI-nya - itu adalah 128MB yang terbuang sia-sia. Dikalikan dengan 20, yang bukan ukuran cluster besar, kita berbicara tentang 2,5 GB – yang dapat dengan mudah membuat server konfigurasi atau arbiter, jika tidak lebih. Dan ini akan dihabiskan untuk GUI, untuk sistem yang jarang membutuhkannya, jika sama sekali. Sesuai fakta, Anda mungkin ingin membaca Membandingkan Kinerja CPU dan Memori:Red Hat Enterprise Linux 6 vs Windows Server 2012
  • Mengenai kecepatan tumpukan jaringan, ada banyak sumber, berikut adalah dua yang cenderung saya rujuk:
    • Kinerja Perbandingan Terukur dari tumpukan TCP , lebih tua, tetapi kita berbicara tentang urutan besarnya, yang setidaknya memberikan gambaran
    • Membandingkan Kinerja Jaringan:Red Hat Enterprise Linux 6 vs Windows Server 2012

Anda mungkin telah mengenali bahwa saya mereferensikan tiga laporan oleh Prinsip Berprinsip. Meskipun saya tidak berafiliasi dengan mereka dengan cara apa pun, IMHO mereka melakukan pekerjaan yang baik dalam membandingkan RHEL 6 dan Windows Server 2012 dengan menggunakan tolok ukur standar industri dan secara eksplisit mengoptimalkan kedua OS untuk tugas yang dimaksud serta menggunakan OS di luar kotak.

Orang mungkin berpendapat bahwa perbandingan ini tidak membuktikan bahwa semua distribusi GNU/Linux lebih cepat dari Windows Server 2012, fitur yang kita bicarakan adalah yang disediakan oleh Kernel Linux dan biasanya tidak dimain-mainkan, jadi aman untuk berasumsi bahwa yang serupa hasil dapat diharapkan dari semua distribusi utama.

Dengan sebagian keunggulan kinerja ekstrem Linux (tumpukan TCP Linux 'sebanyak hampir 4 kali lebih cepat dari Windows Server untuk ukuran pesan besar, yang cenderung menjadi kasus dalam aplikasi basis data), saya memperbarui pernyataan saya bahwa itu adalah Ide yang Sangat Buruk™ untuk menjalankan produksi MongoDB pada Sistem Windows.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa mengubah ukuran koleksi yang dibatasi mongodb tanpa kehilangan data?

  2. Kinerja ClusterControl dan Pemantauan Kesehatan

  3. Bagaimana cara mengimpor data dari mongodb ke pandas?

  4. Instal MongoDB di Windows

  5. Cara menggunakan MongoDB di Heroku