二:原因上一次服务器上线,碰到了个问题,玩家进程在gen_tcp:send时消息堆积,有十多个玩家消息堆积了5W+条,服务器内存过大
我们追一下gen_tcp:send的代码
send(S, Packet) when is_port(S) -> case inet_db:lookup_socket(S) of {ok, Mod} -> %Mod可能是inet_tcp.erl 或者 inet6_tcp.erl Mod:send(S, Packet); Error -> Error end.
继续向下追,追到 inet_tcp:send继续,追到prim_inet:sendsend(Socket, Packet, Opts) -> prim_inet:send(Socket, Packet, Opts).
1 send(S, Data, OptList) when is_port(S), is_list(OptList) -> 2 ?DBG_FORMAT("prim_inet:send(~p