Ubuntu 14.04 数控 100% CPU 使用率
Ubuntu 14.04 nc 100% CPU usage
我正在使用 Ubuntu 14.04 服务器(8 核,16 GB RAM)托管 PHP 网站,MySQL 和 Redis。
PHP web 和 MySQL 的流量非常低(MySQL:平均每秒查询数:0.825)。 Redis 每秒处理 8011 个命令。
今天我注意到 nc 位于 top
的顶部:
8348 root 20 0 11224 764 624 R 100.0 0.0 2277:01 nc
8319 root 20 0 11224 760 624 R 100.0 0.0 2277:59 nc
8324 root 20 0 11224 764 624 R 100.0 0.0 2278:09 nc
8344 root 20 0 11224 760 624 R 100.0 0.0 2277:07 nc
Stracing nc 给出:
root@host:/home/user# strace -p 8348
Process 8348 attached
poll([{fd=3, events=POLLIN}, {fd=-1}], 2, 1000) = 1 ([{fd=3, revents=POLLERR}])
poll([{fd=3, events=POLLIN}, {fd=-1}], 2, 1000) = 1 ([{fd=3, revents=POLLERR}])
poll([{fd=3, events=POLLIN}, {fd=-1}], 2, 1000) = 1 ([{fd=3, revents=POLLERR}])
intentionally cutted N lines from output
快速查找 man poll
给我的信息是 poll waits for one of a set of file descriptors to become ready to perform I/O.
我如何找出文件描述符发生了什么(是文件描述符问题?)并修复 nc 占用 100% CPU?
我们最近遇到了类似的问题。我们有一个 cron 作业,通过 netcat
通过 udp 将一些 redis 统计数据发送到 graphite .它似乎是 netcat
中的错误:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752931
我们 运行 的命令是这样的:
echo "{redis_metric}" | nc -w 1 -u ${graphite_host} 8125
使用 'quit' 选项 (-q) 而不是 'timeout' 选项 (-w),似乎可以解决我们的问题:
echo "{redis_metric}" | nc -q 1 -u ${graphite_host} 8125
希望对您有所帮助!
我正在使用 Ubuntu 14.04 服务器(8 核,16 GB RAM)托管 PHP 网站,MySQL 和 Redis。 PHP web 和 MySQL 的流量非常低(MySQL:平均每秒查询数:0.825)。 Redis 每秒处理 8011 个命令。
今天我注意到 nc 位于 top
的顶部:
8348 root 20 0 11224 764 624 R 100.0 0.0 2277:01 nc
8319 root 20 0 11224 760 624 R 100.0 0.0 2277:59 nc
8324 root 20 0 11224 764 624 R 100.0 0.0 2278:09 nc
8344 root 20 0 11224 760 624 R 100.0 0.0 2277:07 nc
Stracing nc 给出:
root@host:/home/user# strace -p 8348
Process 8348 attached
poll([{fd=3, events=POLLIN}, {fd=-1}], 2, 1000) = 1 ([{fd=3, revents=POLLERR}])
poll([{fd=3, events=POLLIN}, {fd=-1}], 2, 1000) = 1 ([{fd=3, revents=POLLERR}])
poll([{fd=3, events=POLLIN}, {fd=-1}], 2, 1000) = 1 ([{fd=3, revents=POLLERR}])
intentionally cutted N lines from output
快速查找 man poll
给我的信息是 poll waits for one of a set of file descriptors to become ready to perform I/O.
我如何找出文件描述符发生了什么(是文件描述符问题?)并修复 nc 占用 100% CPU?
我们最近遇到了类似的问题。我们有一个 cron 作业,通过 netcat
通过 udp 将一些 redis 统计数据发送到 graphite .它似乎是 netcat
中的错误:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752931
我们 运行 的命令是这样的:
echo "{redis_metric}" | nc -w 1 -u ${graphite_host} 8125
使用 'quit' 选项 (-q) 而不是 'timeout' 选项 (-w),似乎可以解决我们的问题:
echo "{redis_metric}" | nc -q 1 -u ${graphite_host} 8125
希望对您有所帮助!