Xác định dịch vụ Apache đang sử dụng cơ chế MPM gì?
MPM (Multi processing module) là một cơ chế hoạt động của Web Server Apache, cơ chế này sẽ quyết định cách thức tiếp nhận và xử lý các kết nối request từ người dùng. Vậy làm thế nào để Xác định dịch vụ Apache đang sử dụng cơ chế MPM nào? Bizfly Cloud sẽ chỉ ra thông tin rõ ràng hơn qua bài viết dưới đây nhé!
MPM (Multi processing module) là thành phần của máy chủ apache, xác định cách xử lý nhiều clients hoặc kết nối. Apache khá linh hoạt và có nhiều mpms khác nhau có thể được sử dụng với apache tùy thuộc vào nhu cầu. Một số mpms phổ biến trên Linux là:
- Worker
- Prefork
- mpm-ITK
- Peruser
Mỗi mpm đều có ưu và nhược điểm riêng.
Apache chỉ có thể chạy một trong số mpms tại một thời điểm. Mpms không phải là các modules được tải bởi apache. Thay vào đó chúng được compile vào apache.
Để kiểm tra mpm nào đang được sử dụng bởi apache, chạy lệnh sau:
Ubuntu
Trên Ubuntu, Apache được gọi là apache2. Đầu tiên xác định vị trí apache2 binary.
$ whereis apache2
apache2: /usr/sbin/apache2 /etc/apache2 /usr/lib/apache2 /usr/lib64/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz
Bây giờ chạy binary apache với tùy chọn "l". Nó cung cấp một danh sách tất cả các module đã được compile thành apache.
$ /usr/sbin/apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
worker.c
http_core.c
mod_so.c
Trong output ở trên có thể thấy rằng worker.c đã được compile thành apache. Vì vậy, mpm worker đang được sử dụng.
Một cách khác để xác định mpm là bằng cách thực hiện apache binary với tùy chọn "V":
Nó cung cấp thông tin khác nhau về MPM (name, threaded, forked):
Server MPM: Worker
threaded: yes (fixed thread count)
forked: yes (variable process count)
Cú pháp ngắn hơn cho lệnh trên sử dụng grep:
$ /usr/sbin/apache2 -V | grep MPM
Server MPM: Worker
-D APACHE_MPM_DIR="server/mpm/worker"
CentOS
Trên CentOS Apache được gọi là httpd:
# whereis httpd
httpd: /usr/sbin/httpd /etc/httpd.old /etc/httpd
Liệt kê chi tiết apache:
# /usr/sbin/httpd -l
/usr/sbin/httpd: line 63: ulimit: open files: cannot modify limit: Operation not permitted
/usr/sbin/httpd: line 64: ulimit: open files: cannot modify limit: Operation not permitted
/usr/sbin/httpd: line 65: ulimit: open files: cannot modify limit: Operation not permitted
Compiled in modules:
core.c
mod_proxy_balancer.c
mod_ssl.c
prefork.c
http_core.c
mod_mime.c
......
Nó cho thấy prefork.c. Vì vậy, prefork mpm đang chạy.
Thông tin về mpm là:
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Dịch từ: binarytides.com/check-which-mpm-multi-processing-module-apache-is-running/
Nguồn: Bizfly Cloud chia sẻ