gpt4 book ai didi

c - OpenSSL导致丢包?奇怪的CPU使用率

转载 作者:太空狗 更新时间:2023-10-29 11:05:41 27 4
gpt4 key购买 nike

我正在编写网络应用程序,从 UDP 套接字读取数据包,然后使用 OpenSSL 对其进行解密。

主要功能如下所示:

receive(){
while(1){
read(udp_sock);
decrypt_packet();
}
}

在我添加加密之前,程序一直运行良好。现在内核缓冲区和我的应用程序之间丢失了很多数据包(netstat -su - RcvbufErrors: 77123 并且还在增长;)。数据包相当大(60K),我尝试在 1Gbps 以太网上使用它(因此问题在超过 100Mbps 后开始)

听起来很正常 - 解密花费了太多时间,数据包来得太快了。问题是——发送方和接收方的 CPU 使用率从未超过 30%。

在decrypt_packet()中注释掉这条语句后问题消失:AES_ctr128_encrypt();

我的问题是 - OpenSSL 是否可能正在使用一些不计入 CPU 使用率的指令集(我使用 htop 和 Gnome 系统监视器)?如果不是,还有什么可能导致此类数据包丢失,CPU 功率是否仍可用于处理?

最佳答案

您的系统有多少个 CPU 内核?你的代码是单线程的吗?它可能会最大化单个内核,因此仅使用 25% 的可用 CPU。

关于c - OpenSSL导致丢包?奇怪的CPU使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8429112/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com