Skip to content

网络层调度优化 #159

@KBEngineLab

Description

@KBEngineLab

Samples: 974 of event 'task-clock:ppp', 4000 Hz, Event count (approx.): 66932381 lost: 0/0 drop: 0/0
Overhead Shared Object Symbol
5.49% [kernel] [k] __fdget
5.28% cellappmgr [.] KBEngine::Network::NetworkInterface::processChannels(KBEngine::Network::MessageHa
4.12% libstdc++.so.6.0.33 [.] std::_Rb_tree_increment(std::_Rb_tree_node_base*)
3.82% [kernel] [k] handle_softirqs
3.27% cellappmgr [.] KBEngine::Network::EpollPoller::processPendingEvents(double)
2.73% cellappmgr [.] void fmt::v12::detail::parse_format_string<char, fmt::v12::detail::format_handler
2.13% libc.so.6 [.] 0x000000000019b940
2.06% [kernel] [k] do_syscall_64
2.05% libstdc++.so.6.0.33 [.] std::__cxx11::basic_string<char, std::char_traits, std::allocator >::
1.89% [kernel] [k] x64_sys_call
1.86% libc.so.6 [.] epoll_wait
1.76% cellappmgr [.] KBEngine::Cellappmgr::getCellapp(unsigned long)
1.74% cellappmgr [.] KBEngine::Network::TCPPacket::createPoolObject(std::__cxx11::basic_string<char, s
1.56% [kernel] [k] nft_do_chain
1.53% cellappmgr [.] KBEngine::Network::MessageHandlers::find(unsigned short)
1.42% libc.so.6 [.] pthread_mutex_lock
1.36% libc.so.6 [.] cfree
1.36% [kernel] [k] _raw_spin_unlock_irqrestore

起了大概7000的bot

网络事件处理非常频繁,每帧处理的 channel 太多

map 成本异常高:4.12% std::_Rb_tree_increment

红黑树要优化:
O(logN)
cache 不友好
指针跳跃严重

内存分配/释放频繁:
1.36% cfree
1.74% TCPPacket::createPoolObject
2.05% string 操作

锁竞争
1.42% pthread_mutex_lock

内核网络路径吃 CPU,socket 操作非常频繁,网络中断压力
5.49% __fdget
3.82% handle_softirqs

优化优先级:
1.std::map
2.优化 Packet 分配
3.string要改,太多的fmt了
4.网络优化(优先级不高,可能等完全异步化了再做)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions