1. ปรับแต่งฮาร์ดแวร์และระบบปฏิบัติการให้เหมาะสม

ก) แรม

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


  1. ใช้คำสั่ง top เพื่อตรวจสอบขนาด RAM เฉลี่ยที่ใช้โดยกระบวนการ apache
  2. หารขนาด RAM ทั้งหมดที่มีอยู่ด้วยขนาด RAM เฉลี่ยที่ใช้โดย apache เพื่อรับจำนวน MaxRequestWorkers

เพื่อเพิ่มประสิทธิภาพของ Apache ให้แน่ใจว่าคุณมี CPU ที่เร็วกว่าการ์ดเครือข่ายที่เร็วกว่าและดิสก์ที่เร็วกว่า.

b) เขียนขนาดบัฟเฟอร์

เพิ่มขนาดบัฟเฟอร์การเขียนโดยการเพิ่มค่าในสองไฟล์:

proc / sys / / net / core / wmem_max
proc / sys / / net / core / wmem_default

c) ไฟล์เปิดสูงสุด

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

proc / sys / / FS / ไฟล์สูงสุด

จากนั้นรันคำสั่ง:

$ ulimit -H -n 4096

2. ปรับแต่งการกำหนดค่ารันไทม์

a) ปิดการใช้งาน. htaccess โดยใช้ AllowOverride

การเปิดใช้งาน AllowOverride ทำให้ apache พยายามเปิด. htaccess ทุกครั้งที่มีการร้องขอ สิ่งนี้จะลดประสิทธิภาพของเว็บเซิร์ฟเวอร์ Apache ในการแก้ไขปัญหานี้ให้ใช้ตัวเลือก AllowOverride None ดังที่แสดงด้านล่าง:

DocumentRoot "/ www / var / html"

AllowOverride None

b) ปิดการค้นหา DNS โดยใช้ HostnameLookups

เมื่อเปิดใช้งาน HostnameLookups กล่าวคือจะเพิ่มเวลาแฝงสำหรับแต่ละคำขอที่จะทำให้เสร็จหลังจากทำการค้นหา DNS มีสองวิธีในการแก้ไขปัญหานี้:

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

HostnameLookups ปิด

3. ปรับการกำหนดค่าเวลาคอมไพล์

a) โมดูลหลายกระบวนการ (MPM)

apache ช่วย MPM สามารถเชื่อมโยงกับพอร์ตเครือข่ายใช้กระบวนการลูกและเธรดสลับกันเพื่อยอมรับและจัดการการร้องขอ MPM มี 3 ประเภทที่แตกต่างกันและแต่ละแบบเหมาะสำหรับความต้องการที่แตกต่างกัน.

คนงาน: ใช้กระบวนการลูกหลายกระบวนการแต่ละรายการมีหลายเธรดในขณะที่แต่ละเธรดกำลังจัดการการเชื่อมต่อครั้งละหนึ่งรายการ เหมาะสำหรับเซิร์ฟเวอร์ที่มีปริมาณการใช้งานสูงเนื่องจากมีหน่วยความจำขนาดเล็กกว่า prefork.

เหตุการณ์: คล้ายกับ MPM ของผู้ปฏิบัติงานเกี่ยวกับเธรด สิ่งนี้จะช่วยเพิ่มหน่วยความจำที่จัดสรรให้กับเธรดอื่น ๆ ไม่เหมาะสำหรับใช้กับโมดูลที่ไม่ปลอดภัยเช่น mod_php.

prefork: ใช้กระบวนการลูกหลายกระบวนการแต่ละอันมีหนึ่งเธรด แต่ละกระบวนการจัดการการเชื่อมต่อหนึ่งครั้ง มันเร็วกว่าคนงาน แต่ใช้หน่วยความจำมากกว่า เหมาะสำหรับการดีบักแอปพลิเคชันโดยใช้โมดูลที่ไม่ใช้เธรดที่ปลอดภัยเช่น mod_php.

ในการตรวจสอบเวอร์ชั่น MPM ของคุณให้เรียกใช้คำสั่ง

$ sudo httpd -V

เอาท์พุท:

[linuxuser @ centos7-apache ~] $ sudo httpd -V
[sudo] รหัสผ่านสำหรับ linuxuser:
รุ่นเซิร์ฟเวอร์: Apache / 2.4.6 (CentOS)
สร้างเซิร์ฟเวอร์: 20 เม.ย. 2018 18:10:38
หมายเลข Magic Module ของเซิร์ฟเวอร์: 20120211: 24
โหลดเซิร์ฟเวอร์: APR 1.4.8, APR-UTIL 1.5.2
รวบรวมโดยใช้: APR 1.4.8, APR-UTIL 1.5.2
สถาปัตยกรรม: 64-bit
เซิร์ฟเวอร์ MPM: prefork
เธรด: ไม่
เป็นง่าม: ใช่ (จำนวนกระบวนการแปรผัน)
เซิร์ฟเวอร์ที่คอมไพล์ด้วย….
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (เปิดใช้งานที่อยู่ IPv4)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT = 256
-D HTTPD_ROOT ="/ etc / httpd"
-D SUEXEC_BIN ="/ usr / sbin / suexec"
-D DEFAULT_PIDLOG ="/run/httpd/httpd.pid"
-D DEFAULT_SCOREBOARD ="บันทึก / apache_runtime_status"
-D DEFAULT_ERRORLOG ="บันทึก / error_log"
-D AP_TYPES_CONFIG_FILE ="conf / mime.types"
-D SERVER_CONFIG_FILE ="conf / httpd.conf"

MPM ปัจจุบันคือ prefork หากคุณต้องการเปลี่ยนให้แก้ไขดังนี้:

สำหรับ Centos 7

$ sudo vim /etc/httpd/conf.modules.d/00-mpm.conf

สำหรับ อูบุนตู 16.04

$ sudo vim /etc/apache2/mods-available/.load

mpm_prefork อยู่ที่ไหน mpm_event หรือ mpm_worker

b) ลบโมดูลที่ไม่จำเป็นออก

บางโมดูลที่คุณอาจไม่ต้องการในเว็บเซิร์ฟเวอร์ของคุณรวมถึง แต่ไม่ จำกัด เฉพาะ mod_mime, mod_dir, mod_php, mod_perl, mod_ruby, e.t.c สิ่งนี้จะช่วยประหยัดหน่วยความจำ RAM ที่ใช้โดยเว็บเซิร์ฟเวอร์.

ใน Centos 7 เพื่อปิดการใช้งานหรือยกเลิกการโหลดโมดูล, คิดเห็น ออก< บรรทัดที่ขึ้นต้นด้วย LoadModule ในไฟล์ config หลักหรือไฟล์ภายใน /etc/httpd/conf.modules.d/

ใน อูบุนตู 16.04 เพื่อปิดใช้งานหรือยกเลิกการโหลดโมดูลให้รันคำสั่ง:

$ sudo a2dismod module_name

เพื่อเปิดใช้งานโมดูล

$ sudo a2enmod module_name

จากนั้นเริ่มบริการ apache ใหม่.

ลองใช้บริการเว็บโฮสติ้งที่ดีที่สุด 3 อันดับแรก

FastComet

ราคาเริ่มต้น:
$ 2.95


ความเชื่อถือได้
9.7


การตั้งราคา
9.5


เป็นมิตรกับผู้ใช้
9.7


สนับสนุน
9.7


คุณสมบัติ
9.6

อ่านความคิดเห็น

เยี่ยมชม FastComet

A2 โฮสติ้ง

ราคาเริ่มต้น:
$ 3.92


ความเชื่อถือได้
9.3


การตั้งราคา
9.0


เป็นมิตรกับผู้ใช้
9.3


สนับสนุน
9.3


คุณสมบัติ
9.3

อ่านความคิดเห็น

เยี่ยมชม A2 Hosting

ChemiCloud

ราคาเริ่มต้น:
$ 2.76


ความเชื่อถือได้
10


การตั้งราคา
9.9


เป็นมิตรกับผู้ใช้
9.9


สนับสนุน
10


คุณสมบัติ
9.9

อ่านความคิดเห็น

เยี่ยมชม ChemiCloud

บทความเชิงปฏิบัติที่เกี่ยวข้อง

  • วิธีการติดตั้ง Apache และ PHP-FPM บน Debian 8
    ผู้เชี่ยวชาญ
  • วิธีการเพิ่มโมดูลไปยังเซิร์ฟเวอร์ Apache บน CentOS
    สื่อกลาง
  • วิธีกำหนดค่า Nginx และ Apache Together บน Ubuntu VPS หรือเซิร์ฟเวอร์เฉพาะ
    สื่อกลาง
  • วิธีการตั้งค่าเซิร์ฟเวอร์ Apache 2 โดยใช้วิธีการรวมในการจัดการแคชเบราว์เซอร์
    สื่อกลาง
  • วิธีชุบแข็งเว็บเซิร์ฟเวอร์ Apache บน CentOS 7 VPS หรือเซิร์ฟเวอร์เฉพาะ
    ผู้เชี่ยวชาญ
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me