用strace动态查看新建TCP连接服务端的socket参数选项

先找到监听进程的PID。

例如,想要看建立Oracle 数据库连接的socket参数,那么先找到 监听服务 tnslsnr的PID:

[oracle@hysadg1 ~]$ pgrep -f "tnslsnr $(lsnrctl status | awk '/^Alias/{print $2}') "
7864

然后,再用 strace 追踪连接的创建过程:

[oracle@hysadg1 ~]$ sudo strace -fyye trace=socket,setsockopt -p 7864 2>&1 | GREP_COLORS='ms=01;32' grep --color=auto -E '^|.*sock.*|^=*'
strace: Process 7864 attached with 2 threads

最后,当有客户端与服务端监听地址创建 tcp 连接时,就可以看到新建连接的具体参数了,如:

strace

从上图可以清楚的看到,新建 tcp 连接的 keep-alive 开关是打开的,keep-alive空闲时间设置的是600秒,重试间隔设置的是6秒,重试10次,keep-alive消息不缓存合并消息(nodelay);那么也就是说如果这个连接11分钟(空闲10分钟+重试1分钟)之内没得到对方回复,那么服务端就会关闭这个连接。

展开阅读全文

页面更新:2024-03-13

标签:服务端   参数   缓存   间隔   客户端   数据库连接   选项   也就是说   之内   进程   消息   动态

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top