<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection">
<div dir="auto">Hello,<br />
<br />
Thank you for your advice, as suggested I tested a both TCP and UDP, and found TCP to be so slow<br />
that is it practically unusable, UDP however works fine, but has the normal disadvantages of UDP.<br />
<br />
It seems that TCP sends each message by itself, and UDP sends them in bulk (10-20 at a time), <br />
which seems to be a big part of the performance difference, in fact TCP is so slow that it causes<br />
Squid to crash after a while.<br />
<br />
After carefully reading the logs, I tried to get TCP to send in bulk as well by configuring:<br /></div>
<blockquote style="border: none; margin: 0px 0px 0px 25px; padding: 0px;">
<div style="indent-level: 1">logformat logstash %ts.%03tu %6tr %>a %<la %>lp %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt %{Client-Tags}>h</div>
<div style="indent-level: 1">access_log tcp://127.0.0.1:5400 logformat=logstash buffer-size=64KB</div>
<div style="indent-level: 1">buffered_logs on</div>
<div style="indent-level: 1"><br /></div>
</blockquote>
<div dir="auto">But it seems to still be sending the logs line by line, am I missing something?<br />
<br />
Thanks,<br />
Roee</div>
</div>
<div name="messageReplySection">On 9 Sep 2022, 19:57 +0300, Alex Rousskov <rousskov@measurement-factory.com>, wrote:<br />
<blockquote type="cite" style="border-left-color: grey; border-left-width: thin; border-left-style: solid; margin: 5px 5px;padding-left: 10px;">On 9/9/22 08:49, roee klinger wrote:<br />
<blockquote type="cite">Hello,<br />
<br />
I have just recently started exploring ingesting logs from Squid via<br />
Logstash (TCP log ingestion)<br />
<br />
I now have to make the decision of how to deploy Logstash, it seems to<br />
me that I have two options:<br />
<br />
1. Deploy a Logstash instance for every region where I have a Squid<br />
instance running, resulting in the lowest latency possible between<br />
Squid and Logstash.<br />
2. Deploy a central Logstash instance for all Squid instance worldwide,<br />
which is the cheapest and easiest option, but will have high latency<br />
for some of the Squid instance which are located far away<br />
geographically from the Logstash instance.<br />
<br />
I already know that if the log server crashes in Squid, then Squid will<br />
crash with a fatal error,<br /></blockquote>
<br />
FYI: Logging error handling is configurable via "access_log on-error".<br />
<br />
<br />
<blockquote type="cite">so Squid takes logging very seriously, so my<br />
question is: does TCP logging performance in Squid effect the total<br />
request performance, or are they independent from each other?<br /></blockquote>
<br />
TCP logger uses asynchronous non-blocking I/O. Individual HTTP<br />
transactions do not wait for individual log records to be sent. Needless<br />
to say, logging does consume resources and, hence, may affect overall<br />
HTTP transaction performance. And if the log record recipient is too<br />
slow, then Squid will die and/or log records will be dropped.<br />
<br />
<br />
<blockquote type="cite">What would be you recommendations, if request performance is crucial<br />
(and log performance is not)?<br /></blockquote>
<br />
I would not be surprised if you would not be able to measure meaningful<br />
performance difference among these modules. From general performance<br />
point of view, and module-specific bugs and limitations notwithstanding,<br />
I would expect "daemon" and "udp" modules to have smaller performance<br />
overhead/cost for Squid workers than the "tcp" module because I expect<br />
that TCP has to "do more" than stdout I/O and UDP. However, I would not<br />
base this decision on such high-level speculations and test various<br />
options instead.<br />
<br />
<br />
HTH,<br />
<br />
Alex.<br />
_______________________________________________<br />
squid-users mailing list<br />
squid-users@lists.squid-cache.org<br />
http://lists.squid-cache.org/listinfo/squid-users<br /></blockquote>
</div>
</body>
</html>