fre 2012-03-23 klockan 19:49 +0400 skrev Alexander Komyagin: > It seems I finally figured out where the problem is. Squid 3.2.0.16 > performs host verification for each request. And this verification > produces the call to libc getaddrinfo() function (converting IP address > from text to numeric in my case), but uClibc implementation of this > functions looks like not aware of AF_HOSTNUMERIC hint flag, thus > performing full lookup (I haven't checked details yet). With RSBAC-Net > turned on it's too much overhead. (Actually there are two calls for such > conversion per request - one more is in url.cc:urlParseFinish() > function)
Why is the overhead with RSBAC-Net that high in this case? getaddrinfo() is a quite frequenty used call. But I agree that getaddrinfo for converting textual ip to addrinfo to compare with resolved hostname may be a bit overkill. Not even sure why we are converting textual IP to to addrinfo there, we should already have it in IpAddress internal representaion form. > After adding a special hack for numeric IP address conversion requests > in Squid (avoiding call to real getaddrinfo() in that case), the > performance problem has gone (workers work fine too!). Good!
