微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行 3 秒后,Omnet 内存不足?

如何解决运行 3 秒后,Omnet 内存不足?

我为一些实验创建了一个网络,使用 64 台主机并通过 48 台主机发送流量,运行 3 秒后它消耗了所有内存并启动 kswapd0 进程,然后模拟变得非常慢。任何人都可以帮助解决这个问题吗?

我尝试使用 valgrind 调试内存泄漏,它在下面的代码显示问题。

注意:我在循环结束后删除数据包。

我在配置中尝试了不同的数据包大小,但问题与数据包大小无关,所以我专注于标头,它与 valgrind 结果相匹配。

第二行带有“auto”关键字。

if (vlanTag) {
    auto vlanHeader = new inet::Ieee8021qHeader();
    vlanHeader->setPcp(vlanTag->getPcp());
    vlanHeader->setDe(vlanTag->getDe());
    vlanHeader->setVid(vlanTag->getVID());
    ethernetMacHeader->setSTag(vlanHeader);
    delete packet->removeTagIfPresent<VLANTagReq>();
    EV_INFO << getFullPath() << ":Encapsulating higher layer packet `"
                   << packet->getName() << "' into VLAN tag" << endl;
    totalEncap++;
    emit(encapPkSignal,packet);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。