Apache Optimization สำหรับ VPS ขั้นต่ำสุดใน Ubuntu 14.04

Apache ติดตั้งและเริ่มต้นได้ง่ายมาก แต่มาพร้อมกับโมดูลจำนวนมากที่ติดตั้งไว้ล่วงหน้าและเป็นผลให้คุณอาจมีปัญหาด้านประสิทธิภาพเมื่อใช้งานบน RAM VPS ที่ต่ำ

ดังนั้นไม่จำเป็นต้องมีเซิร์ฟเวอร์ที่ใหญ่กว่าเสมอไป แต่คุณสามารถกำหนดการตั้งค่า Apache ได้อย่างถูกต้องและมีประสิทธิภาพที่ดีที่สุด นี่คือบางสิ่งที่คุณควรทำเพื่อให้บรรลุ

บทช่วยสอนนี้มีไว้สำหรับ Ubuntu 14.04 LTS แต่หลักการก็คล้ายกับเวอร์ชั่นก่อนหน้าเช่นกัน


1. ปิดการใช้งานโมดูล Apache

คุณสามารถดูรายการของโมดูลทั้งหมดที่ติดตั้งด้วยคำสั่ง และโมดูลทั้งหมดที่มีการใช้งานที่มีอยู่ในปัจจุบันls /etc/apache2/mods-available/ls /etc/apache2/mods-enabled/

ในการติดตั้ง Apache ครั้งแรกมีการเปิดใช้งานโมดูลอย่างน้อย 15 โมดูลตามค่าเริ่มต้น เหล่านี้มากเกินไปและส่วนใหญ่ไม่ต้องการ

ก่อนอื่นคุณต้องทำรายการของโมดูลที่ใช้งานอยู่ในปัจจุบันทั้งหมดและบันทึกไว้เพื่ออ้างอิงในอนาคตในกรณีที่คุณปิดการใช้งานบางสิ่งที่จำเป็นและคุณต้องเปิดใช้งานอีกครั้ง จากนั้นให้ปิดการใช้งานโมดูลแบบหนึ่งต่อหนึ่งด้วยคำสั่ง (ใช้ moduleName เป็นตัวอย่าง):

sudo a2dismod moduleName

... และรีสตาร์ท Apache หลังจากการเปลี่ยนแปลงแต่ละครั้งเพื่อดูว่ามีข้อผิดพลาดเกิดขึ้นหรือไม่

บางโมดูลที่คุณควรปิดใช้งานหากคุณไม่ต้องการคือ:

  • PHP
  • SSL
  • Rewrite
  • Perl
  • หลาม

หลังจากคุณปิดการใช้งานโมดูลและโหลดการกำหนดค่า Apache อีกครั้งคุณสามารถตรวจสอบข้อผิดพลาดได้โดยการเปิดบันทึกข้อผิดพลาด Apache ด้วยโปรแกรมแก้ไขข้อความเช่น nano

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

หากคุณได้รับข้อผิดพลาดให้เปิดใช้งานโมดูลที่เกี่ยวข้องอีกครั้งด้วย:

sudo a2enmod moduleName

จากนั้นรีสตาร์ท Apache อีกครั้งจนกว่าคุณจะได้รับรายการขั้นต่ำ!


2. ตั้งค่า mpm_prefork

ด้วยการกำหนดค่า Apache เริ่มต้น (ซึ่งไม่สมดุลสำหรับเซิร์ฟเวอร์ขนาดเล็ก) หน่วยความจำสามารถหมดลงอย่างรวดเร็วและเซิร์ฟเวอร์คลาวด์ของคุณสามารถโอเวอร์โหลดได้ สิ่งนี้จะทำให้หน้าเว็บหยุดทำงานในสถานะโหลดอย่างต่อเนื่อง เป็นไปได้ว่าเซิร์ฟเวอร์จะทำให้กระบวนการ Apache ที่ไม่ทำงานเหล่านี้ทำงานอยู่โดยพยายามให้บริการเนื้อหาโดยไม่จำเป็นลดจำนวนกระบวนการที่สามารถให้บริการได้

ในการแก้ไขปัญหานี้ก่อนอื่นคุณต้องค้นหาว่า RAM ที่เซิร์ฟเวอร์ของคุณต้องการนอกเหนือจาก Apache และจำนวนหน่วยความจำเฉลี่ยที่กระบวนการ Apache ใช้อยู่

ขณะที่ Apache กำลังทำงานให้เปิดคำสั่งด้านบนของเซิร์ฟเวอร์

top -bn 1

บนตารางผลลัพธ์:

  • เพิ่มตัวเลขในคอลัมน์ RES ขึ้นสำหรับทุกกระบวนการยกเว้น apache2แล้วลบออกจากจำนวน RAM ทั้งหมด สมมติว่าคุณจะได้รับ600 MB
  • ได้รับเฉลี่ยจากทุกกระบวนการ apache2 สมมติว่าได้รับ20 MB
  • จากนั้นทำขั้นตอนหารสูงสุด 600/20 = 30 กระบวนการ Apache

ขั้นตอนถัดไปแก้ไขไฟล์กำหนดค่าโมดูล mpm_prefork:

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

อาจมีลักษณะเช่นนี้:

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

ที่ไหน:

  • StartServers:จำนวนกระบวนการเซิร์ฟเวอร์ที่จะเริ่ม
  • MinSpareServers:จำนวนขั้นต่ำของกระบวนการเซิร์ฟเวอร์ที่ถูกสำรองไว้
  • MaxSpareServers:จำนวนสูงสุดของกระบวนการเซิร์ฟเวอร์ที่ถูกสำรองไว้
  • MaxRequestWorkers:จำนวนสูงสุดของกระบวนการเซิร์ฟเวอร์ที่อนุญาตให้เริ่มต้น
  • MaxConnectionsPerChild:จำนวนคำขอสูงสุดที่กระบวนการเซิร์ฟเวอร์ทำหน้าที่

ในการตั้งค่าMaxRequestWorkersคุณต้องเปลี่ยนเป็นสิ่งที่คุณพบในการแบ่งข้างต้น

ตอนนี้ถ้า VPS ของคุณโอเวอร์โหลดและถึงจำนวนลูกค้าสูงสุดที่สามารถให้บริการได้ในครั้งเดียวมันจะให้บริการผู้ใช้เหล่านั้นและผู้ใช้รายอื่น ๆ ก็จะได้รับความล้มเหลวอย่างรวดเร็ว จากนั้นพวกเขาสามารถโหลดหน้าซ้ำเพื่อลองอีกครั้ง เป็นการดีกว่าที่จะให้การเชื่อมต่อเหล่านี้ปิดอย่างรวดเร็ว แต่ปล่อยให้เซิร์ฟเวอร์อยู่ในสถานะปกติแทนที่จะเปิดค้างไว้ตลอดไป


3. ลดบันทึกของคุณ

เพื่อเพิ่มประสิทธิภาพคุณสามารถบันทึกข้อมูลได้น้อยลง ในการกำหนดค่า Apache เริ่มต้นLogLevelการตั้งค่าการตั้งค่าเพื่อเตือน คุณสามารถเปลี่ยนเป็นข้อผิดพลาดเพื่อเก็บข้อความผิดพลาดเท่านั้น

เปิดไฟล์คอนฟิกูเรชัน Apache:

sudo nano /etc/apache2/apache2.conf

ค้นหาบรรทัด:

LogLevel warn

... และเปลี่ยนเป็น:

LogLevel error

จากนั้นบันทึกไฟล์และรีสตาร์ท Apache ด้วย:

sudo service apache2 restart

แฟ้มเริ่มต้นที่ Apache เก็บบันทึกเป็น/var/log/apache2/error.log


4. พิจารณาแทนที่ mod_php

หากคุณใช้งานเว็บไซต์ PHP มีโอกาสมากที่คุณจะใช้โมดูล mod_php โมดูลนี้สามารถทำให้กระบวนการลูก Apache ทุกกระบวนการใช้ RAM เกิน 100 MB แม้ว่าการร้องขอสำหรับทรัพยากรแบบคงที่เช่นรูปภาพ, css และ javascript

ทางเลือกที่ดีคือโมดูลphp-fpmซึ่งเป็นกระบวนการแยกต่างหากที่ใช้โปรโตคอล fastcgi ด้วย php-fpm หน่วยความจำสำหรับกระบวนการ Apache สามารถลดลงถึง 10 MB สำหรับเนื้อหาแบบคงที่และ 60 MB สำหรับแบบไดนามิก

แม้ว่ามันอาจเป็นเรื่องยากเล็กน้อยที่จะได้รับสิ่งต่าง ๆ ในการทำงานกับการเปลี่ยนแปลงนี้


5. พิจารณาแทนที่ mpm_prefork

การกำหนดค่า Apache ส่วนใหญ่ใช้โมดูลmpm_preforkซึ่งเป็นเธรดที่ปลอดภัยและใช้กระบวนการลูกหลายกระบวนการด้วยหนึ่งเธรดแต่ละกระบวนการและแต่ละกระบวนการจัดการการเชื่อมต่อครั้งละหนึ่งรายการ หากคุณไม่ต้องการโมดูลภายนอกเช่น PHP หรือ Rails คุณสามารถแทนที่ด้วยโมดูลapache2-mpm-workerซึ่งมักจะเร็วกว่า ผู้ปฏิบัติงาน MPM ใช้กระบวนการลูกหลายกระบวนการที่มีหลายเธรดแต่ละเธรดแต่ละเธรดจัดการการเชื่อมต่อครั้งละหนึ่งรายการ

ในการเปิดใช้งานโมดูลผู้ปฏิบัติงานคุณต้องติดตั้ง

sudo apt-get install apache2-mpm-worker

คำสั่งนี้จะถอนการติดตั้งmpm_prefork , mos_phpและโมดูลเสริมอื่น ๆ ที่เข้ากันไม่ได้



Leave a Comment

ตั้งค่า NFS Share บน Debian

ตั้งค่า NFS Share บน Debian

NFS เป็นระบบไฟล์บนเครือข่ายที่อนุญาตให้คอมพิวเตอร์เข้าถึงไฟล์ผ่านเครือข่ายคอมพิวเตอร์ คู่มือนี้จะอธิบายวิธีการเปิดเผยโฟลเดอร์ผ่าน NF

วิธีการติดตั้ง Directus 6.4 CMS บน Fedora 26 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน Fedora 26 LAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร Directus 6.4 CMS เป็นระบบการจัดการเนื้อหาแบบไม่มีหัว (Headless Content Management: CMS) ที่ทรงพลังและยืดหยุ่นซึ่งให้ผู้พัฒนา

ติดตั้งเซิร์ฟเวอร์ TeamTalk บน Linux

ติดตั้งเซิร์ฟเวอร์ TeamTalk บน Linux

TeamTalk เป็นระบบการประชุมที่ช่วยให้ผู้ใช้สามารถสนทนาด้วยเสียง / วิดีโอคุณภาพสูงสนทนาผ่านข้อความถ่ายโอนไฟล์และแชร์หน้าจอ มันฉัน

การติดตั้ง Pagekit CMS บน CentOS 7

การติดตั้ง Pagekit CMS บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า

วิธีการติดตั้ง Sphinx Search Engine บน CentOS 7

วิธีการติดตั้ง Sphinx Search Engine บน CentOS 7

สฟิงซ์เป็นเครื่องมือค้นหาข้อความแบบโอเพนซอร์ซฟรีและโอเพนซอร์สซึ่งสามารถรวมเข้ากับเว็บแอปพลิเคชั่นต่าง ๆ เพื่อให้ได้คุณภาพที���รวดเร็วและสูง

การใช้คีย์ SSH ของคุณเพื่อเข้าสู่ผู้ใช้ที่ไม่ใช่รูท

การใช้คีย์ SSH ของคุณเพื่อเข้าสู่ผู้ใช้ที่ไม่ใช่รูท

Vultr มีคุณสมบัติที่อนุญาตให้คุณติดตั้งคีย์ SSH ล่วงหน้าเมื่อสร้างอินสแตนซ์ใหม่ สิ่งนี้อนุญาตให้คุณเข้าถึงผู้ใช้รูทเซิร์ฟเวอร์อย่างไรก็ตาม

สร้างเครือข่ายสังคมด้วย Diaspora บน Debian 9

สร้างเครือข่ายสังคมด้วย Diaspora บน Debian 9

ใช้ระบบที่แตกต่างกันอย่างไร Diaspora เป็นเครือข่ายโซเชียลที่ตระหนักถึงความเป็นส่วนตัวและเป็นโอเพ่นซอร์ส ในบทช่วยสอนนี้คุณจะได้เรียนรู้วิธีการตั้งค่าและกำหนดค่า po Diaspora

การติดตั้ง Fuel CMS บน Debian 9

การติดตั้ง Fuel CMS บน Debian 9

ใช้ระบบที่แตกต่างกันอย่างไร Fuel CMS เป็นระบบจัดการเนื้อหาที่ใช้ CodeIgniter ซอร์สโค้ดของมันถูกโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า

วิธีการติดตั้ง Snipe-IT บน Ubuntu 16.10

วิธีการติดตั้ง Snipe-IT บน Ubuntu 16.10

ใช้ระบบที่แตกต่างกันอย่างไร Snipe-IT เป็นเว็บแอปพลิเคชั่นฟรีและโอเพนซอร์สสำหรับการจัดการสินทรัพย์ด้านไอที มันถูกเขียนบนกรอบงาน Laravel 5.2 และการใช้งาน

วิธีการติดตั้งเครื่องมือจัดการโครงการไทก้าบน Ubuntu 16.04

วิธีการติดตั้งเครื่องมือจัดการโครงการไทก้าบน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร ไทกะเป็นแอปพลิเคชั่นฟรีและโอเพ่นซอร์สสำหรับการจัดการโครงการ ซึ่งแตกต่างจากเครื่องมือการจัดการโครงการอื่น ๆ ไทก้าใช้ส่วนเพิ่ม

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

FTP ที่ปลอดภัยมากหรือเพียงแค่ vsFTPd เป็นซอฟต์แวร์น้ำหนักเบาที่มีความสามารถในการปรับแต่ง ในบทช่วยสอนนี้เราจะรักษาความปลอดภัยของข้อความ

วิธีการติดตั้ง GCC บน CentOS 6

วิธีการติดตั้ง GCC บน CentOS 6

CentOS ติดตามการพัฒนา Red Hat Enterprise Linux (RHEL) RHEL พยายามที่จะเป็นแพลตฟอร์มเซิร์ฟเวอร์ที่มั่นคงซึ่งหมายความว่าจะไม่รีบเร่งในการรวม

วิธีการติดตั้ง Ranger Terminal File Manager บน Linux

วิธีการติดตั้ง Ranger Terminal File Manager บน Linux

Ranger เป็นตัวจัดการไฟล์แบบบรรทัดคำสั่งที่มีการเชื่อมโยงคีย์ VI มันจัดเตรียมอินเตอร์เฟส curses ที่เรียบง่ายและดีพร้อมมุมมองบนลำดับชั้นไดเร็กทอรี

วิธีการสร้าง Brotli จากซอร์สบน Ubuntu 18.04 LTS

วิธีการสร้าง Brotli จากซอร์สบน Ubuntu 18.04 LTS

ใช้ระบบที่แตกต่างกันอย่างไร Brotli เป็นวิธีการบีบอัดแบบใหม่ที่มีอัตราการบีบอัดที่ดีกว่า GZIP ซอร์สโค้ดของมันถูกโฮสต์แบบสาธารณะบน Githu นี้

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ในบางโอกาสผู้ดูแลระบบอาจต้องสร้างบัญชีผู้ใช้และ จำกัด การเข้าถึงเพื่อจัดการไฟล์ของตัวเองผ่าน sFTP เท่านั้น

วิธีการติดตั้ง Omeka Classic 2.4 CMS บน Ubuntu 16.04 LAMP VPS

วิธีการติดตั้ง Omeka Classic 2.4 CMS บน Ubuntu 16.04 LAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร Omeka Classic 2.4 CMS เป็นแพลตฟอร์มเผยแพร่ดิจิตอลฟรีและโอเพ่นซอร์สและระบบการจัดการเนื้อหา (CMS) สำหรับการแบ่งปันดิจิต้า

ปิดใช้งานหรือ จำกัด การล็อกอินรูทผ่าน SSH บน Linux

ปิดใช้งานหรือ จำกัด การล็อกอินรูทผ่าน SSH บน Linux

การอนุญาตให้ล็อกอินรูทผ่าน SSH นั้นถือว่าเป็นการปฏิบัติด้านความปลอดภัยที่ไม่ดีทั่วทั้งอุตสาหกรรมเทคโนโลยี คุณสามารถดำเนินการที่ละเอียดอ่อนแทน

วิธีการติดตั้ง Moodle บน CentOS 7

วิธีการติดตั้ง Moodle บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Moodle เป็นแพลตฟอร์มการเรียนรู้โอเพนซอร์ซหรือระบบจัดการหลักสูตร (CMS) - ชุดซอฟต์แวร์โอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อช่วย

วิธีการติดตั้ง RabbitMQ บน Ubuntu 16.04

วิธีการติดตั้ง RabbitMQ บน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร RabbitMQ เป็นนายหน้าข้อความโอเพ่นซอร์สที่ใช้กันอย่างแพร่หลายเขียนในภาษาการเขียนโปรแกรม Erlang เป็นมิดเดิลแวร์ที่มุ่งเน้นข้อความ

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ในบทความนี้ฉันจะอธิบายวิธีสร้าง LEMP สแต็คที่ได้รับการป้องกันโดย ModSecurity ModSecurity เป็นไฟร์วอลล์เว็บแอพพลิเคชันแบบโอเพนซอร์สที่มีประโยชน์

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true