Linux AJAX 网页消耗量大 CPU 的 Web 服务器配置
Linux web server configuration for AJAX web page highly consumed CPU
我有基于 AJAX 的聊天 www 服务同时供许多用户使用,这会消耗大量 CPU 资源并需要许多数据库连接。我问的是 Debian 9 与 MariaDB 和 Apache 以及 PHP 5.6(7.x 不适用于我的服务)的此类场景的服务器配置。我将参数 Maximum No. of Connections (max_used_connections in my.cnf) 增加到 2000: max_connections = 2000 以避免数据库错误。
我还应该更改哪个参数以提高服务器的工作效率并减少聊天延迟?
我进行了测试:同时我在一个浏览器 (Chrome 76.0.3809.100) 上打开了 200 个聊天 window,我看到了大约 60 秒的延迟(应该是 1 秒,因为 php 代码),我观察到我的服务器只有 21 个 Web 进程。如何改进服务器配置?
下面是来自服务器控制台的命令 "ps aux" 的输出,我用它来查看 CPU 进程的使用情况
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
postfix 21107 0 0 83704 6816 ? S 22:12 00:00 pickup
root 25493 0 0 0 0 ? I 22:58 00:00 [kworker/u16:1-e]
root 26082 0 0 0 0 ? I 21:46 00:00 [kworker/6:0-eve]
root 26094 0 0 0 0 ? I 21:46 00:00 [kworker/7:2-cgr]
root 26253 0 0 0 0 ? I 21:47 00:00 [kworker/4:1-eve]
root 26417 0 0 0 0 ? I 21:47 00:00 [kworker/2:0-eve]
www-data 26580 0 0 519484 10732 ? S 21:48 00:00 php-fpm:
www-data 26581 0 0 519484 10732 ? S 21:48 00:00 php-fpm:
root 26585 0 0 0 0 ? I 21:48 00:00 [kworker/1:0-eve]
root 27185 0 0 0 0 ? I 21:51 00:00 [kworker/0:1-eve]
root 28031 0 0 0 0 ? I 23:00 00:00 [kworker/2:2-eve]
postfix 30240 0 0 83704 6800 ? S 23:00 00:00 anvil
root 1029 0,1 0 658632 18944 ? Sl 20:32 00:09 /usr/bin/python3
clamav 734 0,2 2,4 1008592 787196 ? Ssl 20:32 00:25 /usr/sbin/clamd
www-data 9793 3,8 0,3 605264 114312 ? S 22:05 02:22 /usr/sbin/apache2
www-data 10709 3,9 0,3 853140 120500 ? S 22:06 02:25 /usr/sbin/apache2
www-data 10668 4,3 0,3 597996 104668 ? S 22:06 02:40 /usr/sbin/apache2
www-data 9883 4,5 0,3 597060 105312 ? S 22:05 02:47 /usr/sbin/apache2
www-data 9791 4,6 0,3 604864 115324 ? R 22:05 02:52 /usr/sbin/apache2
www-data 9792 5,1 0,3 598828 108416 ? S 22:05 03:07 /usr/sbin/apache2
www-data 10073 5,4 0,3 599192 105860 ? S 22:05 03:18 /usr/sbin/apache2
www-data 10363 5,6 0,3 844492 113288 ? S 22:06 03:25 /usr/sbin/apache
www-data 9794 5,8 0,3 851780 120412 ? S 22:05 03:34 /usr/sbin/apache2
www-data 9795 6 0,3 599708 108424 ? S 22:05 03:42 /usr/sbin/apache2
www-data 9822 6,1 0,3 602568 109008 ? S 22:05 03:45 /usr/sbin/apache2
www-data 10710 6,3 0,3 598836 105540 ? S 22:06 03:52 /usr/sbin/apache2
www-data 27116 7,2 0,3 608036 114096 ? S 22:44 01:37 /usr/sbin/apache2
mysql 946 9 0,6 958820 221472 ? Ssl 20:32 14:01 /usr/sbin/mysqld
www-data 27013 9,5 0,3 598352 104688 ? S 22:44 02:08 /usr/sbin/apache2
www-data 27119 10,5 0,3 602800 110460 ? S 22:44 02:21 /usr/sbin/apache2
www-data 27054 10,6 0,3 596540 104216 ? S 22:44 02:23 /usr/sbin/apache2
www-data 27117 10,8 0,3 596612 103268 ? S 22:44 02:25 /usr/sbin/apache2
您的环境可以通过以下方式得到改善:
- 检查服务器的硬件并确定 RAM 和 CPU 的要求。
- 使用 Mysqltuner 脚本调整数据库引擎性能。
- 检查您的查询并尝试改进它们。
- 在 Apache 上安装缓存模块,例如:memcached 和 apcu。
- 建议使用 PHP-FPM 以获得更好的性能。
然后您需要进行基准测试以检查硬件规格和配置是否适合您的环境。
有许多基准测试工具,例如:ab - Apache HTTP 基准测试工具,或任何其他在线工具。
我有基于 AJAX 的聊天 www 服务同时供许多用户使用,这会消耗大量 CPU 资源并需要许多数据库连接。我问的是 Debian 9 与 MariaDB 和 Apache 以及 PHP 5.6(7.x 不适用于我的服务)的此类场景的服务器配置。我将参数 Maximum No. of Connections (max_used_connections in my.cnf) 增加到 2000: max_connections = 2000 以避免数据库错误。 我还应该更改哪个参数以提高服务器的工作效率并减少聊天延迟?
我进行了测试:同时我在一个浏览器 (Chrome 76.0.3809.100) 上打开了 200 个聊天 window,我看到了大约 60 秒的延迟(应该是 1 秒,因为 php 代码),我观察到我的服务器只有 21 个 Web 进程。如何改进服务器配置?
下面是来自服务器控制台的命令 "ps aux" 的输出,我用它来查看 CPU 进程的使用情况
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
postfix 21107 0 0 83704 6816 ? S 22:12 00:00 pickup
root 25493 0 0 0 0 ? I 22:58 00:00 [kworker/u16:1-e]
root 26082 0 0 0 0 ? I 21:46 00:00 [kworker/6:0-eve]
root 26094 0 0 0 0 ? I 21:46 00:00 [kworker/7:2-cgr]
root 26253 0 0 0 0 ? I 21:47 00:00 [kworker/4:1-eve]
root 26417 0 0 0 0 ? I 21:47 00:00 [kworker/2:0-eve]
www-data 26580 0 0 519484 10732 ? S 21:48 00:00 php-fpm:
www-data 26581 0 0 519484 10732 ? S 21:48 00:00 php-fpm:
root 26585 0 0 0 0 ? I 21:48 00:00 [kworker/1:0-eve]
root 27185 0 0 0 0 ? I 21:51 00:00 [kworker/0:1-eve]
root 28031 0 0 0 0 ? I 23:00 00:00 [kworker/2:2-eve]
postfix 30240 0 0 83704 6800 ? S 23:00 00:00 anvil
root 1029 0,1 0 658632 18944 ? Sl 20:32 00:09 /usr/bin/python3
clamav 734 0,2 2,4 1008592 787196 ? Ssl 20:32 00:25 /usr/sbin/clamd
www-data 9793 3,8 0,3 605264 114312 ? S 22:05 02:22 /usr/sbin/apache2
www-data 10709 3,9 0,3 853140 120500 ? S 22:06 02:25 /usr/sbin/apache2
www-data 10668 4,3 0,3 597996 104668 ? S 22:06 02:40 /usr/sbin/apache2
www-data 9883 4,5 0,3 597060 105312 ? S 22:05 02:47 /usr/sbin/apache2
www-data 9791 4,6 0,3 604864 115324 ? R 22:05 02:52 /usr/sbin/apache2
www-data 9792 5,1 0,3 598828 108416 ? S 22:05 03:07 /usr/sbin/apache2
www-data 10073 5,4 0,3 599192 105860 ? S 22:05 03:18 /usr/sbin/apache2
www-data 10363 5,6 0,3 844492 113288 ? S 22:06 03:25 /usr/sbin/apache
www-data 9794 5,8 0,3 851780 120412 ? S 22:05 03:34 /usr/sbin/apache2
www-data 9795 6 0,3 599708 108424 ? S 22:05 03:42 /usr/sbin/apache2
www-data 9822 6,1 0,3 602568 109008 ? S 22:05 03:45 /usr/sbin/apache2
www-data 10710 6,3 0,3 598836 105540 ? S 22:06 03:52 /usr/sbin/apache2
www-data 27116 7,2 0,3 608036 114096 ? S 22:44 01:37 /usr/sbin/apache2
mysql 946 9 0,6 958820 221472 ? Ssl 20:32 14:01 /usr/sbin/mysqld
www-data 27013 9,5 0,3 598352 104688 ? S 22:44 02:08 /usr/sbin/apache2
www-data 27119 10,5 0,3 602800 110460 ? S 22:44 02:21 /usr/sbin/apache2
www-data 27054 10,6 0,3 596540 104216 ? S 22:44 02:23 /usr/sbin/apache2
www-data 27117 10,8 0,3 596612 103268 ? S 22:44 02:25 /usr/sbin/apache2
您的环境可以通过以下方式得到改善:
- 检查服务器的硬件并确定 RAM 和 CPU 的要求。
- 使用 Mysqltuner 脚本调整数据库引擎性能。
- 检查您的查询并尝试改进它们。
- 在 Apache 上安装缓存模块,例如:memcached 和 apcu。
- 建议使用 PHP-FPM 以获得更好的性能。
然后您需要进行基准测试以检查硬件规格和配置是否适合您的环境。
有许多基准测试工具,例如:ab - Apache HTTP 基准测试工具,或任何其他在线工具。