Điểm:0

Thời gian phản hồi của Apache2 rất tệ sau khi bật mô-đun php-fpm

lá cờ cn

Tôi đang chạy Apache2 trên VPS Debian 11.Tôi đã viết một API và tôi đang cố gắng kiểm tra nó thông qua một máy chủ bên ngoài bằng ApacheBench.

Khi bật mpm_prefork và tắt php8.0-fpm, thời gian phản hồi phần trăm thứ 95 là khoảng 30 mili giây. Đầu ra như sau:

Phần mềm máy chủ: Apache/2.4.52
Tên máy chủ: XXX.XXX.com
Cổng máy chủ: 443
Giao thức SSL/TLS: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Khóa tạm thời máy chủ: X25519 253 bit
Tên máy chủ TLS: XXX.XXX.com

Đường dẫn tài liệu: /v1/module
Độ dài tài liệu: 370 byte

Mức độ đồng thời: 100
Thời gian thực hiện các bài kiểm tra: 2,783 giây
Hoàn thành yêu cầu: 1000
Yêu cầu không thành công: 0
Yêu cầu Keep-Alive: 1000
Tổng số đã truyền: 845001 byte
HTML được truyền: 370000 byte
Yêu cầu mỗi giây: 359,28 [#/giây] (trung bình)
Thời gian cho mỗi yêu cầu: 278.336 [ms] (trung bình)
Thời gian cho mỗi yêu cầu: 2,783 [ms] (có nghĩa là trên tất cả các yêu cầu đồng thời)
Tốc độ truyền: Đã nhận 296,48 [Kbyte/giây]

Thời gian kết nối (ms)
              trung bình tối thiểu[+/-sd] trung bình tối đa
Kết nối: 0 14 157.2 0 2295
Xử lý: 17 26 3.3 25 44
Đang chờ: 17 26 3.3 25 44
Tổng cộng: 17 40 157,8 25 2330

Phần trăm yêu cầu được phục vụ trong một thời gian nhất định (ms)
  50% 25
  66% 26
  75% 27
  80% 28
  90% 30
  95% 33
  98% 41
  99% 282
 100% 2330 (yêu cầu dài nhất)

Với mpm_prefork vẫn được bật nhưng chuyển sang php8.0-fpm, thời gian phản hồi trở nên vô lý. Đầu ra như sau:

Phần mềm máy chủ: Apache/2.4.52
Tên máy chủ: XXX.XXX.com
Cổng máy chủ: 443
Giao thức SSL/TLS: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Khóa tạm thời máy chủ: X25519 253 bit
Tên máy chủ TLS: XXX.XXX.com

Đường dẫn tài liệu: /v1/module
Độ dài tài liệu: 370 byte

Mức độ đồng thời: 100
Thời gian thực hiện các bài kiểm tra: 12,595 giây
Hoàn thành yêu cầu: 1000
Yêu cầu không thành công: 0
Yêu cầu Keep-Alive: 0
Tổng số đã truyền: 788000 byte
HTML được truyền: 370000 byte
Yêu cầu mỗi giây: 79,39 [#/giây] (trung bình)
Thời gian cho mỗi yêu cầu: 1259,549 [ms] (trung bình)
Thời gian cho mỗi yêu cầu: 12,595 [ms] (có nghĩa là trên tất cả các yêu cầu đồng thời)
Tốc độ truyền: Đã nhận 61,10 [Kbyte/giây]

Thời gian kết nối (ms)
              trung bình tối thiểu[+/-sd] trung bình tối đa
Kết nối: 91 1152 619.3 1108 4744
Xử lý: 22 46 39.0 32 850
Đang chờ: 21 43 27,4 31 491
Tổng: 121 1198 623,4 1146 4784

Phần trăm yêu cầu được phục vụ trong một thời gian nhất định (ms)
  50% 1146
  66% 1298
  75% 1668
  80% 1796
  90% 1992
  95% 2053
  98% 2190
  99% 3017
 100% 4784 (yêu cầu dài nhất)

Tôi đang chạy Apache/2.4.52 (Debian) và PHP 8.0.14 (cli). Mục tiêu là bắt đầu sử dụng mpm_event thay vì mpm_prefork, để kích hoạt nhiều kết nối đồng thời cho API của tôi. Tôi không thể bắt đầu làm điều này với thời gian tải như vậy.

Làm cách nào tôi có thể chuyển sang php-fpm mà không làm hỏng thời gian tải của mình? Cài đặt php-fpm của tôi như sau:

pm.max_children = 844
pm.start_servers = 16
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 1000
lá cờ jp
PHP chạy với `mod_php` và với `php-fpm` sử dụng các cấu hình khác nhau. Đảm bảo rằng các cài đặt giống nhau trong cả hai trường hợp.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.