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

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

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน