cuốn sách gpt4 ai đã làm

linux - CPU thấp, RAM thấp, IO thấp nhưng hiệu năng kém, tại sao?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 10:55:25 29 4
mua khóa gpt4 Nike

Tôi đang gặp vấn đề về hiệu suất với máy chủ Linux Centos Apache của mình. Tôi có một chương trình (viết bằng c) thực hiện đồng thời nhiều yêu cầu http. Bản thân quá trình này có vẻ rất hiệu quả, như thể tôi có thể thực hiện 500 yêu cầu đồng thời tới máy chủ bên ngoài mà không có bất kỳ sự khác biệt đáng chú ý nào về thời gian so với chỉ 1 yêu cầu.

Tuy nhiên, tôi có nhiều tập lệnh trên cùng một máy chủ mà tôi chạy đồng thời bằng cùng một chương trình. Số lượng tập lệnh chạy khác nhau nhưng xấp xỉ 100 tập lệnh cho một lần tìm kiếm.

Nhiệm vụ của mỗi tập lệnh là gọi API (trên máy chủ bên ngoài) để phân tích dữ liệu cần thiết và chèn nó vào cơ sở dữ liệu.

Tôi đã đo thời gian khởi động của từng tập lệnh và nhận thấy rằng có độ trễ rất lớn khi khởi động từng tập lệnh. Có sự khác biệt tối đa là 10 giây giữa thời điểm bắt đầu tập lệnh đầu tiên và thời điểm bắt đầu tập lệnh cuối cùng. Khoảng thời gian trễ lớn như vậy sẽ làm chậm quá trình tìm kiếm trên trang web của tôi.

Tôi đã sử dụng lệnh top trên máy linux centos của mình và trong quá trình tìm kiếm, hãy xem 2 ví dụ bên dưới cho 2 trường hợp khác nhau.

Ví dụ về lệnh cấp cao nhất 1:

hàng đầu - 18:51:18 lên 36 ngày, 3:35, 1 người dùng, tải trung bình: 0,02, 0,07, 0,08
Nhiệm vụ: Tổng cộng 182, 2 chạy, 180 ngủ, 0 dừng, 0 zombie
(Các) CPU: 3,7%us, 1,3%sy, 0,0%ni, 94,9%id, 0,0%wa, 0,0%hi, 0,1%si, 0,0%st
Mem: tổng cộng 4194304k, 3941184k đã sử dụng, 253120k miễn phí, bộ đệm 26820k
Hoán đổi: tổng cộng 4194296k, 76k đã sử dụng, 4194220k miễn phí, 2069456k được lưu trong bộ nhớ đệm



NGƯỜI DÙNG PID PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
691 Apache 15 0 190m 18m 5052 S 4.0 0.5 0:00.19 httpd
959 Apache 17 0 189m 15m 3196 R 3.0 0.4 0:00.09 httpd
702 Apache 15 0 185m 101m 5036 S 1.7 2.5 0:00.86 httpd
732 Apache 15 0 184m 12m 5036 S 1,7 0,3 0:00,15 httpd
689 Apache 15 0 184m 14m 5144 S 0,7 0,3 0:00,87 httpd
734 Apache 15 0 184m 100m 4740 S 0,7 2,4 0:00,21 httpd
670 Apache 15 0 205m 99m 4992 S 0,3 2,4 0:00,39 httpd
678 Apache 15 0 184m 13m 5032 S 0,3 0,3 0:01,05 httpd
795 gốc 15 0 12764 1356 956 R 0,3 0,0 0:00,03 trên cùng
949 Apache 15 0 181m 9616 2928 S 0,3 0,2 0:00,01 httpd
951 Apache 20 0 180m 8748 2640 S 0,3 0,2 0:00,01 httpd
1 gốc 15 0 10372 792 664 S 0,0 0,0 0:00,20 init
2 gốc RT -5 0 0 0 S 0,0 0,0 0:00,14 di chuyển/0
3 gốc 34 19 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/0
4 gốc RT -5 0 0 0 S 0.0 0.0 0:00.00 cơ quan giám sát/0
5 căn 10 -5 0 0 0 S 0,0 0,0 0:00,04 sự kiện/0
6 căn 10 -5 0 0 0 S 0.0 0.0 0:00.00 khhelper
7 gốc 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
9 gốc 10 -5 0 0 0 S 0.0 0.0 0:00.00 xenwatch
10 gốc 10 -5 0 0 0 S 0.0 0.0 0:00.00 xenbus
37 gốc 10 -5 0 0 0 S 0.0 0.0 0:00.03 kblockd/0
42 gốc 20 -5 0 0 0 S 0,0 0,0 0:00,00 cqueue/0
50 gốc 20 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
52 gốc 10 -5 0 0 0 S 0.0 0.0 0:00.00 kseriod
137 gốc 15 0 0 0 0 S 0.0 0.0 0:00.00 khungtas

Ví dụ lệnh cấp cao nhất 2:

trên cùng - 18:52:49 lên 36 ngày, 3:36, 1 người dùng, tải trung bình: 0,53, 0,21, 0,12
Nhiệm vụ: Tổng cộng 240, 8 chạy, 231 ngủ, 0 dừng, 1 zombie
(Các) CPU: 50,4%us, 4,8%sy, 0,0%ni, 43,5%id, 0,5%wa, 0,0%hi, 0,5%si, 0,2%st
Mem: tổng cộng 4194304k, 4097104k đã sử dụng, 97200k miễn phí, bộ đệm 27148k
Hoán đổi: tổng cộng 4194296k, 76k đã sử dụng, 4194220k miễn phí, 1965428k được lưu trong bộ nhớ đệm

NGƯỜI DÙNG PID PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
949 Apache 16 0 185m 101m 5328 S 32.1 2.5 0:01.19 httpd
1229 Apache 16 0 184m 12m 4580 S 32,1 0,3 0:00,98 httpd
968 Apache 17 0 188m 17m 4732 S 30,4 0,4 ​​0:01,92 httpd
1244 Apache 17 0 184m 12m 4580 S 27,8 0,3 0:00,86 httpd
994 Apache 16 0 190m 19m 5060 S 27,5 0,5 0:01,69 httpd
1222 Apache 16 0 218m 44m 4676 R 26,5 1,1 0:00,82 httpd
1657 mysql 15 0 627m 223m 5664 S 23,5 5,5 65:16,63 mysqld
1256 Apache 16 0 184m 12m 4580 S 21,2 0,3 0:00,81 httpd
1245 Apache 16 0 210m 37m 4084 R 14,6 0,9 0:00,47 httpd
1005 Apache 16 0 213m 42m 5308 R 13,6 1,0 0:00,67 httpd
1246 Apache 17 0 184m 12m 4580 S 11.3 0.3 0:00.74 httpd
1214 Apache 16 0 182m 10m 4060 S 3,3 0,3 0:00,23 httpd
1253 Apache 16 0 184m 12m 4580 S 2,3 0,3 0:00,67 httpd
1233 Apache 15 0 196m 22m 3696 R 2.0 0.6 0:00.17 httpd
1215 Apache 15 0 183m 11m 4060 S 1.7 0.3 0:00.18 httpd
1265 Apache 15 0 182m 11m 3444 S 1,7 0,3 0:00,05 httpd
1230 Apache 16 0 180m 9644 3436 S 1,3 0,2 0:00,04 httpd
1210 Apache 15 0 192m 19m 3620 S 1.0 0.5 0:00.14 httpd
1011 Apache 15 0 193m 22m 5356 R 0,7 0,5 0:00,86 httpd
1016 Apache 15 0 192m 19m 4092 S 0,7 0,5 0:00,20 httpd
1019 Apache 15 0 192m 21m 4972 S 0,7 0,5 0:01,27 httpd
1051 gốc 15 0 12896 1424 956 R 0,7 0,0 0:00,10 trên cùng
1221 Apache 15 0 180m 9820 3436 S 0,7 0,2 0:00,03 httpd
989 Apache 15 0 193m 21m 5332 R 0,3 0,5 0:01,06 httpd
1000 Apache 15 0 208m 102m 5424 S 0,3 2,5 0:00,97 httpd
1032 Apache 15 0 190m 18m 4748 S 0,3 0,4 0:00,39 httpd
1213 Apache 15 0 0 0 0 Z 0,3 0,0 0:00,15 httpd
1251 Apache 15 0 184m 11m 3700 S 0,3 0,3 0:00,02 httpd
1 gốc 15 0 10372 792 664 S 0,0 0,0 0:00,20 init
2 gốc RT -5 0 0 0 S 0,0 0,0 0:00,14 di chuyển/0
3 gốc 34 19 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/0
4 gốc RT -5 0 0 0 S 0.0 0.0 0:00.00 cơ quan giám sát/0
5 căn 10 -5 0 0 0 S 0,0 0,0 0:00,04 sự kiện/0

Mình cũng nhìn vào đĩa IO, có nhiều tiến trình nhưng tổng số IO không nhiều:

Tổng số ĐỌC ĐĨA: 0,00 B/s | Tổng số VIẾT ĐĨA: 0,00 B/s
TID PRIO NGƯỜI DÙNG ĐĨA ĐỌC ĐĨA VIẾT TRAO ĐỔI IO> LỆNH
2804 be/3 gốc 0,00 B/s 0,00 B/s 0,00 % 1,13 % [ib_cm/1]
32387 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,75 % httpd -k start -DSSL
32344 be/4 apache 0,00 B/s 3,77 K/s 0,00 % 0,75 % httpd -k start -DSSL
32465 be/4 apache 0,00 B/s 0,00 B/s -0,75 % 0,75 % httpd -k start -DSSL
32487 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,75 % httpd -k start -DSSL
32377 be/4 apache 0,00 B/s 3,77 K/s 0,00 % 0,38 % httpd -k start -DSSL
32462 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,38 % httpd -k start -DSSL
32469 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,38 % httpd -k start -DSSL
32445 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,38 % httpd -k start -DSSL
32349 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32436 be/4 root 0,00 B/s 0,00 B/s 0,00 % 0,00 % python /usr/bin/iotop
32385 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32382 be/4 apache 0,00 B/s 3,77 K/s 0,38 % 0,00 % httpd -k start -DSSL
32446 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32381 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32375 be/4 apache 0,00 B/s 0,00 B/s 0,75 % 0,00 % httpd -k start -DSSL
32312 be/4 apache 0,00 B/s 3,77 K/s 0,00 % 0,00 % httpd -k start -DSSL
32342 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
1407 be/4 dbus 0,00 B/s 0,00 B/s 0,00 % 0,00 % dbus-daemon --system
32455 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32466 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32470 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32488 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
25045 be/4 dovecot 0,00 B/s 0,00 B/s 0,00 % 0,00 % dovecot/pop3-login
4 rt/3 gốc 0,00 B/s 0,00 B/s 0,00 % 0,00 % [cơ quan giám sát/0]
32514 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32581 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32531 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32471 be/4 apache 0,00 B/s 0,00 B/s 0,38 % 0,00 % httpd -k start -DSSL
32546 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32519 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32521 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32315 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32523 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32524 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32335 be/4 apache 0,00 B/s 3,77 K/s 0,00 % 0,00 % httpd -k start -DSSL
32583 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32566 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32526 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32481 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32557 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32529 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32530 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32541 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32507 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32570 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL
32504 be/4 apache 0,00 B/s 0,00 B/s 0,00 % 0,00 % httpd -k start -DSSL

Tôi cũng đã thử nghiệm các cài đặt khác nhau của httpd.conf của mình:

Kiểm tra HTTPD.CONF 1:


Máy chủ khởi động 2
Máy chủ MinSpare 2
MaxSpareServers 5
Giới hạn máy chủ 200
Khách hàng tối đa 200
MaxRequestsPerChild 100

Kiểm tra HTTPD.CONF 2:


Máy chủ khởi động 2
Máy chủ MinSpare 2
MaxSpareServers 5
Giới hạn máy chủ 2
Khách hàng tối đa 2
MaxRequestsPerChild 1

Những điều trên dường như không có bất kỳ tác động nào đến hiệu suất.

Tôi cũng đã kiểm tra xem mô-đun mpm đã được cài đặt chưa (có vẻ như vậy), xem bên dưới. Nhưng tôi thực sự không hiểu làm thế nào các cài đặt trên không có bất kỳ tác động nào đến hiệu suất máy chủ của tôi.

-bash-3.2# httpd -M
[Thứ Tư 11 tháng 3 18:59:42 2015] [cảnh báo] mô-đun php5_module đã được tải, bỏ qua
Các mô-đun đã tải:
core_module (tĩnh)
authn_file_module (tĩnh)
authn_default_module (tĩnh)
authz_host_module (tĩnh)
authz_groupfile_module (tĩnh)
authz_user_module (tĩnh)
authz_default_module (tĩnh)
auth_basic_module (tĩnh)
reqtimeout_module (tĩnh)
include_module (tĩnh)
filter_module (tĩnh)
deflate_module (tĩnh)
log_config_module (tĩnh)
logo_module (tĩnh)
env_module (tĩnh)
hết hạn_module (tĩnh)
headers_module (tĩnh)
Unique_id_module (tĩnh)
setenvif_module (tĩnh)
version_module (tĩnh)
proxy_module (tĩnh)
proxy_connect_module (tĩnh)
proxy_ftp_module (tĩnh)
proxy_http_module (tĩnh)
proxy_scgi_module (tĩnh)
proxy_ajp_module (tĩnh)
proxy_balancer_module (tĩnh)
ssl_module (tĩnh)
mpm_prefork_module (tĩnh)
http_module (tĩnh)
mime_module (tĩnh)
dav_module (tĩnh)
status_module (tĩnh)
autoindex_module (tĩnh)
asis_module (tĩnh)
suexec_module (tĩnh)
cgi_module (tĩnh)
dav_fs_module (tĩnh)
dav_lock_module (tĩnh)
đàm phán_module (tĩnh)
dir_module (tĩnh)
hành động_module (tĩnh)
userdir_module (tĩnh)
bí danh_module (tĩnh)
viết lại_module (tĩnh)
so_module (tĩnh)
php5_module (được chia sẻ)
Cú pháp ổn

Tôi thực sự không biết đây có thể là điểm nghẽn cổ chai về hiệu suất ở đâu. Điều quan trọng là khi tôi đặt exit lên trên tất cả 100 tập lệnh thì không có độ trễ thời gian, nhưng khi tập lệnh thực hiện tất cả các yêu cầu cuộn tròn và phân tích cú pháp dữ liệu thì có độ trễ thời gian lớn.

Mọi sự giúp đỡ đều rất được hoan nghênh!

câu trả lời hay nhất

Nếu bạn có khoảng 100 yêu cầu bên ngoài cho mỗi thao tác, điều đó sẽ làm chậm tập lệnh của bạn. Cho dù bạn đưa ra mức hiệu quả nào cho máy chủ/tập lệnh thì 100 yêu cầu này đều phải chia sẻ băng thông mạng. Ngoài ra, có nhiều điều phức tạp hơn đang diễn ra ở cấp độ mạng khiến nó chậm hơn các giá trị lý thuyết lý tưởng.

Nếu bạn có nhiều yêu cầu cho cùng một URL, bạn có thể lưu phản hồi vào bộ nhớ đệm trong một khoảng thời gian ngắn dựa trên tốc độ thay đổi dữ liệu trong nguồn.

Ví dụ: nếu bạn có thể nhận được khoảng 30-40% phản hồi từ bộ đệm, trong số 100 yêu cầu bạn thực hiện cho một thao tác, điều này sẽ tăng tốc đáng kể tập lệnh của bạn.

Về linux - CPU thấp, RAM thấp, IO thấp nhưng hiệu năng kém, tại sao? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/28994318/

29 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress