Mengoptimalkan Apache dan MySQL di Linux Xen VPS

10

Saya memiliki Xen virtual private server (VPS) yang menjalankan Ubuntu 8.10, dengan 128M RAM.

Saya telah menemukan beberapa "cara mengoptimalkan Apache dan MySQL untuk VPS dengan memori rendah" melalui Google, tetapi mereka memberikan informasi yang kontradiktif. Jadi saya bertanya Server Fault: bagaimana cara mengoptimalkan Apache dan MySQL untuk konfigurasi VPS memori rendah?


Beberapa orang menyarankan untuk menggunakan nginx dan bukannya Apache. Saya akan memeriksanya, tetapi saya lebih suka tetap menggunakan Apache jika memungkinkan, hanya untuk menghindari harus mempelajari semua tentang konfigurasi tumpukan aplikasi di atas server web yang tidak dikenal (bagi saya).

Kristopher Johnson
sumber

Jawaban:

7

Nginx memang hebat, tetapi jika Anda ingin tetap menggunakan Apache, Anda bisa melangsingkannya sedikit dari pengaturan default:

  • Gunakan MPM pekerja daripada prefork (dengan MPM pekerja Apache tidak lagi memiliki model "proses per koneksi").
  • Lihatlah semua modul bersama yang Anda muat, singkirkan semua yang tidak Anda butuhkan.
  • Hindari menanamkan server aplikasi di dalam Apache (yaitu mod_python, mod_php, dll) jika Anda dapat menghindarinya. Alih-alih, jalankan server aplikasi dalam proses terpisah dan minta proxy Apache (misalnya untuk kode Python gunakan mod_wsgi dalam mode daemon). Dengan cara ini, utas Apache Anda yang hanya menyajikan konten statis tidak akan terlalu membengkak.
  • Di konfigurasi Apache Anda, kurangi pengaturan StartServers, MaxClients, MinSpareThreads, dan MaxSpareThreads. Bergantung pada beban yang Anda harapkan, kadang-kadang Anda dapat menguranginya dengan faktor lima atau lebih dari pengaturan default.
Carl Meyer
sumber
2

Jika Anda memiliki keterbatasan memori, saya akan merekomendasikan menggunakan nginx sebagai alternatif jika memungkinkan. Ini menghabiskan memori jauh lebih sedikit daripada Apache dan tergantung pada kebutuhan Anda bisa menjadi semua yang Anda butuhkan.

Sebagai bonus, nginx cenderung jauh lebih cepat daripada Apache. =)

Jauder Ho
sumber
2

Ditch apache, prosesnya per model koneksi tidak akan bermain dengan VPS memori rendah Anda.

Saya menyarankan nginx sebagai pengganti.

Dave Cheney
sumber
4
Ini hanya masalah 1.3. apache 2.x memungkinkan modul proses plugable termasuk MPM yang menjalankan banyak utas dalam sejumlah kecil proses. Semua merdu secukupnya
Vagnerr
Ya, tetapi nginx masih akan menjadi proses yang lebih kecil
Dave Cheney
2
Ya, tapi bukan itu yang Anda katakan