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

วิธีการติดตั้ง 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