<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 14, 2022 at 12:47 AM James Read <<a href="mailto:jamesread5737@gmail.com">jamesread5737@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 9, 2022 at 12:47 AM Reinis Rozitis <<a href="mailto:r@roze.lv" target="_blank">r@roze.lv</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> Otherwise why is my application running into such performance limits as mentioned in this question on stackoverflow <a href="https://stackoverflow.com/questions/70584121/why-doesnt-my-epoll-based-program-improve-performance-by-increasing-the-number" rel="noreferrer" target="_blank">https://stackoverflow.com/questions/70584121/why-doesnt-my-epoll-based-program-improve-performance-by-increasing-the-number</a> ?<br>
<br>
You are testing something (public third party dns servers) you have no control over (how can you be sure there are no rate limits?) with third party libraries without actually measuring/showing what takes up your time. That's not the best way to test low level things.<br></blockquote><div><br></div><div>I just succeeded in modifying the wrk source code so that is connects with multiple servers rather than just the one. I can confirm that it gets the same throughput as with one host. So I take back my comments about there being a difference between one host simulating many being different to an actual test with many clients. There must be a problem with my epoll implementation because the modified wrk codebase works just fine.</div><div><br></div></div></div></blockquote><div><br></div><div>I've done some more playing around with the wrk source code. It turns out that wrk was reusing connections and for this reason was able to achieve high throughput. When you change the source code and force wrk to only use a connection once (the very situation it should be trying to simulate) the throughput drops off a cliff. I'm beginning to think there may be a problem with the Linux TCP/IP stack. I haven't tested this on BSD (yet).</div><div><br></div><div>James Read</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div></div><div>James Read</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
I would suggest to at minimum do at least 'strace -c' to see what syscalls takes most of the time.<br>
<br>
But that's something out of scope of this mailing list.<br>
<br>
rr<br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div></div>
</blockquote></div></div>