Bạn đang tìm kiếm sự trợ giúp? Gõ thông tin cần tìm. Tối thiểu 4 ký tự.

Kiểm soát và tối ưu bộ nhớ khi chạy Apache

1. Điều chỉnh các tham số quản lý tiến trình (MPM)

Apache sử dụng các mô-đun MPM (Multi-Processing Module) như prefork, worker, hoặc event để quản lý tiến trình và luồng xử lý request. Các tham số quan trọng bạn cần cấu hình:

  • StartServers: số tiến trình con khởi tạo khi Apache chạy.
  • MinSpareServersMaxSpareServers: số tiến trình con nhàn rỗi tối thiểu và tối đa để đáp ứng nhanh yêu cầu mới.
  • MaxRequestWorkers (trước đây là MaxClients): số lượng request đồng thời tối đa Apache có thể xử lý, ảnh hưởng trực tiếp đến lượng RAM sử dụng.
  • ServerLimit: giới hạn tối đa số tiến trình con, nên đặt bằng hoặc lớn hơn MaxRequestWorkers.
  • MaxConnectionsPerChild (MaxRequestsPerChild): số request tối đa một tiến trình con xử lý trước khi bị tái khởi động, giúp tránh rò rỉ bộ nhớ.

Ví dụ cấu hình (trong file httpd.conf hoặc mpm.conf):

text

StartServers          10

MinSpareServers       10

MaxSpareServers       50

MaxRequestWorkers     500

ServerLimit           500

MaxConnectionsPerChild 10000

Lưu ý:

  • Tăng MaxRequestWorkers giúp Apache xử lý nhiều request hơn nhưng cũng làm tăng RAM tiêu thụ.
  • Bạn cần tính toán dựa trên dung lượng RAM server và bộ nhớ trung bình mỗi tiến trình Apache sử dụng để đặt giá trị phù hợp.

2. Kích hoạt và tối ưu KeepAlive

  • KeepAlive On giúp client tái sử dụng kết nối TCP cho nhiều request, giảm chi phí thiết lập kết nối mới, cải thiện hiệu suất.
  • KeepAliveTimeout: thời gian chờ giữ kết nối, nên đặt thấp (ví dụ 3-5 giây) để tránh giữ kết nối không cần thiết làm tốn tài nguyên.
  • MaxKeepAliveRequests: số request tối đa trên một kết nối, có thể đặt 100 hoặc cao hơn.

Ví dụ:

text

KeepAlive On

KeepAliveTimeout 5

MaxKeepAliveRequests 100

3. Kích hoạt bộ nhớ đệm (Cache)

  • Sử dụng các module như mod_cache, mod_disk_cache hoặc mod_mem_cache để lưu trữ nội dung tĩnh hoặc kết quả xử lý, giảm tải cho Apache và PHP.
  • Cấu hình cache giúp giảm số request thực sự phải xử lý, tiết kiệm RAM và CPU.

4. Tăng giới hạn bộ nhớ và sử dụng Opcache cho PHP

  • Trong file php.ini, tăng giá trị:

text

memory_limit = 256M

  • Kích hoạt Opcache để PHP lưu trữ bytecode đã biên dịch trong bộ nhớ, giảm chi phí biên dịch lại script cho mỗi request.

5. Giám sát và điều chỉnh

  • Theo dõi lượng RAM Apache sử dụng qua lệnh:

bash

ps aux | grep httpd

  • Sử dụng công cụ như mod_status để xem số lượng tiến trình và request đang xử lý.
  • Điều chỉnh tham số cấu hình dựa trên thực tế tải và tài nguyên server.

6. Hạn chế quyền truy cập và tối ưu bảo mật

  • Giới hạn truy cập vào các thư mục nhạy cảm để giảm tải không cần thiết.
  • Sử dụng các phương pháp bảo mật giúp tránh các request độc hại gây tốn tài nguyên.

Tóm tắt

Cách tối ưu
Mô tả ngắn gọn
Điều chỉnh MPM
Tăng/giảm số tiến trình, MaxRequestWorkers phù hợp RAM
Kích hoạt KeepAlive
Giữ kết nối lâu hơn, giảm chi phí tạo kết nối mới
Kích hoạt bộ nhớ đệm (Cache)
Giảm số request xử lý thực sự
Tăng memory_limit và Opcache
Giúp PHP xử lý hiệu quả, giảm tải cho Apache
Giám sát và điều chỉnh
Theo dõi tài nguyên, điều chỉnh tham số phù hợp
Hạn chế truy cập
Giảm tải server, tăng bảo mật

Related Knowledge Base Posts