Pengoptimuman Apache untuk VPS Akhir Rendah di Ubuntu 14.04

Apache sangat mudah dipasang dan diinisialisasi, tetapi dilengkapi dengan banyak modul yang telah diinstal sebelumnya dan akibatnya anda mungkin menghadapi masalah prestasi ketika menjalankan dengan VPS RAM yang rendah.

Jadi, tidak selalu memerlukan pelayan yang lebih besar, tetapi anda hanya boleh mengkonfigurasi tetapan Apache dengan cara yang betul dan mempunyai prestasi yang terbaik. Berikut adalah beberapa perkara yang harus anda lakukan untuk mencapainya.

Tutorial ini adalah untuk Ubuntu 14.04 LTS tetapi prinsipnya serupa dengan versi sebelumnya juga.


1. Lumpuhkan modul Apache

Anda dapat melihat senarai semua modul yang dipasang dengan arahan ls /etc/apache2/mods-available/dan semua modul yang sedang aktif dengannya ls /etc/apache2/mods-enabled/.

Pada pemasangan awal Apache terdapat 15 atau lebih modul yang diaktifkan secara lalai. Ini terlalu banyak dan kebanyakannya tidak diperlukan.

Pertama sekali, anda harus membuat senarai semua modul yang sedang aktif dan menyimpannya untuk rujukan pada masa akan datang sekiranya anda melumpuhkan sesuatu yang diperlukan dan anda harus mengaktifkannya semula. Kemudian matikan modul satu per satu dengan arahan (menggunakan moduleName sebagai contoh):

sudo a2dismod moduleName

... dan mulakan semula Apache selepas setiap perubahan untuk melihat apakah ada ralat berlaku.

Beberapa modul yang harus anda lumpuhkan jika anda tidak memerlukannya adalah:

  • PHP
  • SSL
  • Tulis semula
  • Perl
  • Python

Setelah anda mematikan modul dan memuatkan semula konfigurasi Apache, anda boleh memeriksa kesilapan dengan membuka log ralat Apache dengan penyunting teks seperti nano.

sudo nano /var/log/apache2/error.log

Sekiranya anda mendapat ralat, aktifkan semula modul yang sesuai dengan:

sudo a2enmod moduleName

Kemudian, mulakan semula Apache sehingga anda mendapat senarai minimum yang disusun!


2. Sediakan mpm_prefork

Dengan konfigurasi Apache lalai (yang tidak seimbang untuk pelayan kecil), memori dapat habis dengan cepat dan pelayan awan anda boleh menjadi berlebihan. Ini akan menyebabkan halaman web digantung dalam keadaan yang sentiasa dimuat. Kemungkinan pelayan akan memastikan proses Apache yang mati ini tetap aktif, berusaha untuk menyajikan kandungan tanpa perlu, mengurangkan jumlah proses yang tersedia untuk disajikan.

Untuk menyelesaikan masalah ini, pertama anda harus mengetahui berapa banyak RAM yang diperlukan pelayan anda selain dari Apache dan jumlah memori rata-rata yang digunakan oleh proses Apache.

Manakala Apache sedang berjalan, buka bahagian arahan pada pelayan.

top -bn 1

Pada jadual hasil:

  • tambahkan nombor pada lajur RES untuk setiap proses, kecuali apache2 dan kemudian keluarkan dari jumlah RAM. Katakan anda mendapat 600 MB .
  • dapatkan purata dari semua proses apache2 . Katakan mendapat 20 MB .
  • kemudian, lakukan pembahagian 600/20 = 30 proses Apache maksimum

Langkah seterusnya, edit fail konfigurasi modul mpm_prefork:

sudo nano /etc/apache2/mods-enabled/mpm_prefork.conf

Ia mungkin kelihatan seperti ini:

<IfModule mpm_prefork_module>
    StartServers             2
    MinSpareServers          2
    MaxSpareServers          5
    MaxRequestWorkers        30
    MaxConnectionsPerChild   0
</IfModule>

Di mana:

  • StartServers: bilangan proses pelayan untuk dimulakan.
  • MinSpareServers: bilangan minimum proses pelayan yang disimpan.
  • MaxSpareServers: bilangan maksimum proses pelayan yang disimpan.
  • MaxRequestWorkers: bilangan maksimum proses pelayan dibenarkan untuk dimulakan.
  • MaxConnectionsPerChild: jumlah permintaan maksimum yang dilayan oleh proses pelayan.

Dalam tetapan MaxRequestWorkers , anda harus menukarnya kepada apa sahaja yang anda dapati di bahagian di atas.

Sekarang, jika VPS anda berlebihan dan mencapai jumlah maksimum klien yang dapat dilayannya sekaligus, ia akan melayani mereka dan pengguna lain akan mendapat kegagalan cepat. Mereka kemudian boleh memuatkan semula halaman untuk mencuba lagi. Lebih baik hubungan ini ditutup dengan cepat tetapi biarkan pelayan dalam keadaan sihat daripada terus terbuka.


3. Kurangkan log anda

Untuk memaksimumkan prestasi, anda pasti dapat memasukkan lebih sedikit maklumat. Dalam konfigurasi Apache lalai, tetapan LogLevel ditetapkan untuk memberi amaran . Anda boleh mengubahnya menjadi kesalahan untuk menyimpan hanya mesej kesalahan.

Buka fail konfigurasi Apache:

sudo nano /etc/apache2/apache2.conf

Cari baris:

LogLevel warn

... dan ubah kepada:

LogLevel error

Kemudian, simpan fail dan mulakan semula Apache dengan:

sudo service apache2 restart

Fail lalai yang disimpan oleh Apache adalah /var/log/apache2/error.log .


4. Pertimbangkan untuk menggantikan mod_php

Sekiranya anda menjalankan laman web PHP, ada kemungkinan besar anda menggunakan modul mod_php. Modul ini boleh menyebabkan setiap proses anak Apache menggunakan RAM lebih dari 100 MB walaupun permintaannya adalah untuk sumber statik seperti gambar, css dan javascript.

Alternatif yang hebat adalah modul php-fpm , yang merupakan proses terpisah yang menggunakan protokol fastcgi. Dengan php-fpm, memori untuk proses Apache boleh turun menjadi 10 MB untuk kandungan statik dan 60 MB untuk dinamik.

Walaupun mungkin agak sukar untuk menyelesaikan sesuatu dengan perubahan ini, ia perlu dilakukan.


5. Pertimbangkan untuk menggantikan mpm_prefork

Sebilangan besar konfigurasi Apache menggunakan modul mpm_prefork yang selamat untuk utas dan menggunakan beberapa proses anak dengan satu utas masing-masing dan setiap proses mengendalikan satu sambungan pada satu masa. Sekiranya anda tidak memerlukan modul luaran seperti PHP atau Rails, maka anda boleh menggantinya dengan modul pekerja apache2-mpm , yang lebih cepat. MPM pekerja menggunakan banyak proses anak dengan banyak utas dan setiap utas mengendalikan satu sambungan pada satu masa.

Untuk mengaktifkan modul pekerja, anda harus memasangnya.

sudo apt-get install apache2-mpm-worker

Perintah ini akan menyahpasang mpm_prefork , mos_php dan modul tambahan lain yang tidak serasi.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut