-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如何理解 SOCKETLAT_READSLOW #305
Comments
是的,这种就是是kernel处理好了,应用层读的慢了
|
这个地方的实现应该是有问题,并不是所有的包都会在调用 sock_def_readable 后再调用 tcp_cleanup_rbuf。调用 sock_def_readable 后会记录一个 lastreceive,假如这个时候系统没有再接收新的包,但是可能存在调用 tcp_cleanup_rbuf 的情况,这个时候 latency = now - ski->lastreceive 就会不停的增大。类似以下的代码实现
客户端每隔2s就会去进行一次 Read ,但是服务端并没有往 buffer 写数据,这个时候每隔2s就会有一个event,并且 latency 值会不断的累加
每次调用 tcp_cleanup_rbuf 以后增加一个 ski->lastreceive = 0 的操作会不会更好?同理调用 tcp_write_xmit 也是一样的 |
我们有一个访问redis的请求,redis有质量监控,每次get的p99时间基本上在1ms左右,但是 SOCKETLAT_READSLOW 有大量的大于100ms的
看代码sock_receive的时候会记录一个时间,然后对比socket_read之间的时间差,不知道我理解的对不对
The text was updated successfully, but these errors were encountered: