số quy trình công nhân nginx


23

Tôi đang thiết lập nginx để phục vụ cài đặt Drupal và dường như tôi tìm thấy thông tin mâu thuẫn trên cài đặt quy trình nhân viên nginx. Một trang web nói rằng bạn cần hai, một cho biết bạn cần năm, một cho biết một cho mỗi bộ xử lý ...

Làm thế nào tôi nên chọn số lượng quy trình công nhân nginx? Nếu nó tạo ra sự khác biệt, thì đó là một VM khách trên cụm VMWare và tôi đã cho nó một bộ xử lý ảo.

Câu trả lời:


16

Nginx không giống như Apache và quy trình khác trên mỗi máy chủ web kết nối. Nó sử dụng một quy trình chính để bắt đầu và giám sát một số lượng nhỏ các quy trình công nhân thực sự xử lý các kết nối. Đề nghị của tôi là bắt đầu với số lượng công nhân mặc định, là 1.

worker_processes  1;

Bạn sẽ chỉ cần tăng điều này nếu bạn thấy rằng nhân viên nginx đang dành quá nhiều thời gian bị chặn trên IO. Điều này sẽ không xảy ra cho đến khi nó phục vụ nhiều hàng trăm yêu cầu mỗi giây.

Bạn cũng có thể thấy các cài đặt này hữu ích.

worker_rlimit_nofile 8192;

events {
    worker_connections  2048;
    use epoll;
}

1
Bạn có thể mô tả "worker_rlimit_nofile 8192" được sử dụng để làm gì không?
Nhà phát triển Pixel

wiki.nginx.org/NginxHttpMainModule#worker_rlimit_nofile . Điều này hướng dẫn các công nhân để tăng ulimit của nó.
Dave Cheney

15

Trên các hệ thống SMP, ít nhất các quy trình nhân viên nCPU nên được bắt đầu: trên lõi tứ - bốn, v.v ... Đó là điều khó khăn cho việc ủy ​​quyền.

Nếu bạn định phục vụ một số trang web có nhiều nội dung tĩnh, sẽ tốt hơn nếu thêm nhiều nhân viên - mỗi trang trên một đĩa.

Nếu hệ thống con đĩa của bạn kém hoặc tải quá cao, các quy trình nhân viên nginx có thể bị khóa trong các hoạt động I / O và không thể phục vụ các yêu cầu khác. Trong trường hợp này, bạn nên tăng số lượng tiến trình worker lên một số giá trị phù hợp (có thể là hàng chục) hoặc thêm một số bộ nhớ cho bộ đệm đĩa.

Nhìn vào bản in "ps ax": công nhân ở trạng thái "D" bị khóa. Tăng cho đến khi nhận được ít nhất các quy trình công nhân nCPU không bị chặn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.