On 19/09/17 23:54, Iraj Norouzi wrote:
hi Antony
thanks for you reply
i setup squid on ubuntu and centos
Why both?
because of test and because i not get the result
with tproxy and wccp for 6 gb/s traffic
What hardware are you using for that sort of traffic flow?
i use hp DL360 with 2 6 core processor with 3 GHZ and 64 GB RAM and 1 TB HDD
but when i try to test squid with 40 mb/s traffic
How are you generating "40 mb/s traffic"? I'm assuming that your Internet
connection is 6Gbps as stated above, so how are you restricting this down to
40Mbps for testing?
i redirect one class of ip address with 40 mb/s traffic for test of
squid and i am going decide to redirect whole of traffic to squid after
getting fast browsing
Squid is designed to optimize and reduce *bandwidth*. "fast browsing" is
just a nice side effect of caching. It is a mistake to think that Squid
will always produce faster browsing.
This is especially true during the initial cache warm-up period where
DNS and HTTP objects are being fetched for the first time. Speed can
only come from future fetches being reduced by the cache.
So when you are testing for speed with real traffic make sure there has
been at least a few hrs for the caches to warm up.
Since you are testing with RAM-only caching right now be aware that
every time you restart Squid *all* its caches (for all data types) get
erased back to "cold"/empty.
it response very slow
Numbers please.
websites load at 2 or 1 second by direct browsing and load at 10 second
or not load by squid
while when i use direct browsing i can browse websites very fast
Is the direct traffic still being routed through the Squid server (you say
you're using tproxy, so I assume this is an intercept machine with the
traffic
going through it between client and server)?
no, HTTP traffic redirect to squid by wccp and access-list config on Cisco
Cisco is tunneling the packets with WCCP to the Squid machine, which is
intercepting the traffic with TPROXY.
So actually "yes", if not something would be terribly broken in your
WCCP and TPROXY setup.
ip wccp 80 redirect-list wccp
ip wccp 90 redirect-list wccp_to_inside
ip access-list extended wccp
remark Permit http access from clients
permit tcp x.x.x.x 0.0.0.255 any eq www
deny ip any any
ip access-list extended wccp_to_inside
permit tcp any eq www x.x.x.x 0.0.0.255
deny ip any any
i used tcpdump for tracing connections arrive time and there was no problem,
Arrival time where? From the origin server to Squid? From Squid to the
client? What are you actually measuring?
yes, arriving source packets from clients to squid interface,by time
that i push enter on browser address bar and getting packets on tcpdump
immediately
Packets arriving at Squid from the client is only the first ~1% of
things that are going on. It would be a big problem if they took
anything more than a few ms to arrive.
Once the packets arrive there are DNS lookups to do. Delay in DNS
lookups is the most common cause of overall delays.
Then there is HTTP processing to find a source for the response. If the
request has never been seen before that means a fair amount of logic to
select potential upstream servers and attempt connections to them (maybe
several or even all of them).
Then the server request has to be generated, and wait for a response.
Only when that server response comes back can stuff for the client
response start to happen.
When the cache is involved the total time could be under 1ms, or
somewhat around 50ms. If there are lots of server things to do the time
can be hundreds of ms.
i used watch -d for tracing packets match by iptables rules and it was ok,
Please be more specific - what did you measure and what does "OK" mean?
i add rule to iptables for tracing one website packets and i saw them on
kern.log that matched with the rule, so if you need please tell me to
send commands that i used.
Which packets. As I detailed above, there are a minimum of 2 TCP
connections involved with delivering a MISS object (client->Squid, and
Squid->server) potentially many more if there are network issues
connecting to server(s).
ip rule add fwmark 1 lookup 100 ip route add local 0.0.0.0/0
<http://0.0.0.0/0> dev enp3s0f0 table 100
iptables -t mangle -A PREROUTING -d $LOCALIP -j ACCEPT
You also need a rule before the above one which blocks traffic to
"-d $LOCALIP -p 3129 -j REJECT"
iptables -t
mangle -N DIVERT iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT iptables -t mangle -A PREROUTING
-p tcp -m socket -j DIVERT iptables -t mangle -A PREROUTING -p tcp
--dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
watch -d iptables -t mangle -vnL
Did you compare with and without Squid in place to see what differs?
no, as i told when i browsing directly it is well and packets not coming
to squid and exit from cisco to internet and arrive to clients from
cisco and because of traffic on cisco i can't enable debugging on it but
when i browse from squid i get latency so i suppose the problem is squid
or server that squid running on it
Your test is incomplete.
To eliminate WCCP and routing issues being the cause of problems you
need to compare:
A) normal browsing without WCCP or TPROXY.
B) normal browsing with WCCP tunneling traffic to the Squid machine (no
Squid running and no TPROXY).
C) normal browsing with WCCP tunneling traffic to the Squid machine
where TPROXY diverts the traffic into Squid.
If things work any slower at test (B) than test (A) your problem is the
WCCP + Squid machine setup, not Squid itself.
i also used iptables trace command for tracing matching iptables rules,
there was no problem except i had latency on arriving packets on iptables
rule while tcpdump captured packets fast, it happened when my browsing was
so slow, at some times that my browsing was fast there was no latency on
iptables trace log.
That description is too vague to know exactly what you were measuring
and what
results you got.
iptables -t raw -A PREROUTING -s x.x.x.x -j TRACE
iptables -t raw -A OUTPUT -s x.x.x.x -j TRACE
tailf /var/log/kern.log
tcpdump -e -i enp3s0f0 -d x.x.x.x dst port 80
tcpdump -e -i enp3s0f0 -s x.x.x.x src port 80
"and what results you got" ?
i also used tcp and linux enhancement configurations
Details?
net.core.wmem_default=524288
net.core.wmem_max=16777216
net.core.rmem_default=524288
net.core.rmem_max=16777216
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 66560 524288 16777216
net.ipv4.tcp_wmem = 66560 524288 16777216
net.core.somaxconn=4000
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_sack=0
net.ipv4.tcp_fin_timeout=20
net.ipv4.ip_local_port_range=10240 65000
net.ipv4.tcp_keepalive_time = 900
net.ipv4.tcp_keepalive_intvl = 900
net.ipv4.tcp_keepalive_probes = 9
net.core.somaxconn = 5000
net.core.netdev_max_backlog = 8000
net.ipv4.tcp_max_syn_backlog = 8096
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_tw_reuse = 1
Okay, so no improvement with those means they were not useful, please
ensure they are back at defaults so as not to add problems to other
experimental changes.
but nothing happened.
wccp send packets very well and tcpdump show capturing packets too but
browsing with squid is very slow.
Firstly, please define "slow" - do you mean it takes a long time for new web
pages / images / etc to appear (but once they start, they arrive quickly)
>> Iraj:
browse in 10 second or not browsing, webpages that i browse for first
time or i browse for multiple times
For that sort of delay:
* check the DNS response times for lookups made by the Squid machine.
The details of Squid's lookups can be found in the "idns" cache manager
report.
*
>> Antony:
, or do you mean that a continuous stream of data (a "download") arrives
more
slowly when going through Squid than going direct (and if so, what are the
different speeds)?
>> Iraj:
no just browsing,
>> Antony:
Secondly, what are you trying to achieve with Squid - what is its purpose in
your network?
>> Iraj:
caching pages and their objects for better internet browsing by clients
and save bandwith.
squid.conf
dns_v4_first on
acl fanava_net src x.x.x.x/32
acl Safe_ports port 80# http
acl Safe_ports port 280# http-mgmt
acl Safe_ports port 488# gss-http
acl Safe_ports port 777# multiling http
acl CONNECT method CONNECT
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access allow fanava_net
http_access deny all
http_port 0.0.0.0:3128
http_port 0.0.0.0:3129 tproxy
cache_mem 50 GB
Does this machine actually have at least 52 GB of free RAM for Squid to use?
maximum_object_size_in_memory 100 MB
minimum_object_size 2 KB
maximum_object_size 6 GB
#cache_dir ufs /var/spool/squid 1024000 256 512
cache_swap_low 90
cache_swap_high 92
coredump_dir /var/spool/squid
# Image files
refresh_pattern -i \.(png|gif|jpg|jpeg|bmp|tif|tiff)$ 10080 90% 43200
# Compressed files
refresh_pattern -i \.(zip|rar|tar|gz|tgz|z|arj|lha|lzh|iso|deb|rpm)$
10080 90% 43200
# Binary files
refresh_pattern -i \.(exe|msi)$ 10080 90% 43200
# Multimedia files
refresh_pattern -i
\.(mp3|wav|mid|midi|ram|avi|wmv|mpg|mpeg|mp4|swf|flv|)$ 10080 90% 43200
# Document files
refresh_pattern -i \.(pdf|ps|doc|ppt|xls|pps)$ 10080 90% 43200
# HTML patterns
refresh_pattern -i \.index.(html|htm)$ 0 40% 10080
refresh_pattern -i \.default.(html|htm)$ 0 40% 10080
refresh_pattern -i \.(html|htm|css|js)$ 1440 40% 40320
# Default patterns
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320 # Fanava First
clients range to cache
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
cache_mgr ******
wccp2_router x.x.x.x
wccp_version 2
wccp2_rebuild_wait on
wccp2_forwarding_method 2
wccp2_return_method 2
wccp2_service dynamic 80
wccp2_service_info 80 protocol=tcp flags=src_ip_hash priority=240 ports=80
wccp2_service dynamic 90
wccp2_service_info 90 protocol=tcp flags=dst_ip_hash,ports_source
priority=240 ports=80
*Regards,
Iraj Norouzi*
Amos
_______________________________________________
squid-users mailing list
squid-users@xxxxxxxxxxxxxxxxxxxxx
http://lists.squid-cache.org/listinfo/squid-users