[squid-users] Whether squid 3.5.2 can support rock at wccp tproxy environment really ?

johnzeng johnzeng2013 at yahoo.com
Mon Mar 9 09:28:28 UTC 2015


> Hello Dear Amos:
>
>                              Thanks for your reply ,  i updated my 
> config in according to your advisement .
>
>                              i do more testing for the part .  i face 
> same problem still , although i understand your saying ( they are 
> *completely* unrelated. ")
>
> but it is real result via more testing still !
>
>                               if i disable cache_dir rock part ,and it 
> will be success for wccp( tproxy) connection
>
>                              if i enable cache_dir rock part ,and it 
> will be failure for wccp( tproxy)
>
>                              it is very strange really  ,
>
>                              Maybe there are some error  at Cache_dir 
> rock , and Wccp don't running at error status ,
>
>                               but i don't find any error logs info  
> after running squid .
>
>
>                 this is a config for rock
>
>     cache_dir rock /accerater/webcache3/storage/rock1 2646 
> min-size=4096 max-size=262144 max-swap-rate=250 swap-timeout=350
>
>
> this is status info
>
> squid -z
>
> 2015/03/09 15:22:45 kid3| Creating Rock db: 
> /accerater/webcache3/storage/rock1/rock
>
>
> squid -d1
>
> root at fastopmizer:/accerater/webcache3/sbin# 2015/03/09 15:23:34 kid3| 
> Set Current Directory to /accerater/logs/webcache3/opmizer1
> 2015/03/09 15:23:34 kid4| Set Current Directory to 
> /accerater/logs/webcache3/opmizer1
> 2015/03/09 15:23:34 kid3| Starting Squid Cache version 3.5.2 for 
> x86_64-unknown-linux-gnu...
> 2015/03/09 15:23:34 kid3| Service Name: squid
> 2015/03/09 15:23:34 kid4| Starting Squid Cache version 3.5.2 for 
> x86_64-unknown-linux-gnu...
> 2015/03/09 15:23:34 kid3| Process ID 12049
> 2015/03/09 15:23:34 kid2| Set Current Directory to 
> /accerater/logs/webcache3/opmizer1
> 2015/03/09 15:23:34 kid4| Service Name: squid
> 2015/03/09 15:23:34 kid3| Process Roles: disker
> 2015/03/09 15:23:34 kid4| Process ID 12048
> 2015/03/09 15:23:34 kid2| Starting Squid Cache version 3.5.2 for 
> x86_64-unknown-linux-gnu...
> 2015/03/09 15:23:34 kid3| With 4096 file descriptors available
> 2015/03/09 15:23:34 kid2| Service Name: squid
> 2015/03/09 15:23:34 kid2| Process ID 12050
> 2015/03/09 15:23:34 kid4| Process Roles: coordinator
> 2015/03/09 15:23:34 kid3| Initializing IP Cache...
> 2015/03/09 15:23:34 kid2| Process Roles: worker
> 2015/03/09 15:23:34 kid4| With 4096 file descriptors available
> 2015/03/09 15:23:34 kid2| With 4096 file descriptors available
> 2015/03/09 15:23:34 kid4| Initializing IP Cache...
> 2015/03/09 15:23:34 kid2| Initializing IP Cache...
> 2015/03/09 15:23:34 kid3| DNS Socket created at [::], FD 7
> 2015/03/09 15:23:34 kid3| DNS Socket created at 0.0.0.0, FD 8
> 2015/03/09 15:23:34 kid4| DNS Socket created at [::], FD 7
> 2015/03/09 15:23:34 kid4| DNS Socket created at 0.0.0.0, FD 8
> 2015/03/09 15:23:34 kid3| Adding nameserver 127.0.0.1 from 
> /etc/resolv.conf
> 2015/03/09 15:23:34 kid2| DNS Socket created at [::], FD 10
> 2015/03/09 15:23:34 kid4| Adding nameserver 127.0.0.1 from 
> /etc/resolv.conf
> 2015/03/09 15:23:34 kid1| Set Current Directory to 
> /accerater/logs/webcache3/opmizer1
> 2015/03/09 15:23:34 kid2| DNS Socket created at 0.0.0.0, FD 11
> 2015/03/09 15:23:34 kid2| Adding nameserver 127.0.0.1 from 
> /etc/resolv.conf
> 2015/03/09 15:23:34 kid1| Starting Squid Cache version 3.5.2 for 
> x86_64-unknown-linux-gnu...
> 2015/03/09 15:23:34 kid1| Service Name: squid
> 2015/03/09 15:23:34 kid1| Process ID 12051
> 2015/03/09 15:23:34 kid1| Process Roles: worker
> 2015/03/09 15:23:34 kid1| With 4096 file descriptors available
> 2015/03/09 15:23:34 kid1| Initializing IP Cache...
> 2015/03/09 15:23:34 kid1| DNS Socket created at [::], FD 10
> 2015/03/09 15:23:34 kid1| DNS Socket created at 0.0.0.0, FD 11
> 2015/03/09 15:23:34 kid1| Adding nameserver 127.0.0.1 from 
> /etc/resolv.conf
> 2015/03/09 15:23:34 kid3| Logfile: opening log 
> daemon:/accerater/webcache3/var/logs/access.log
> 2015/03/09 15:23:34 kid4| Logfile: opening log 
> daemon:/accerater/webcache3/var/logs/access.log
> 2015/03/09 15:23:34 kid3| Logfile Daemon: opening log 
> /accerater/webcache3/var/logs/access.log
>
> 2015/03/09 15:23:34 kid4| Logfile Daemon: opening log 
> /accerater/webcache3/var/logs/access.log
> 2015/03/09 15:23:34 kid2| Logfile: opening log 
> stdio:/accerater/logs/webcache3/accessb.log
> 2015/03/09 15:23:34 kid1| Logfile: opening log 
> stdio:/accerater/logs/webcache3/accessa.log
> 2015/03/09 15:23:34 kid2| Logfile: opening log 
> stdio:/accerater/logs/webcache3/storeb.log1
> 2015/03/09 15:23:34 kid2| WARNING: disk-cache maximum object size is 
> too large for mem-cache: 102400.00 KB > 90.00 KB
> 2015/03/09 15:23:34 kid2| Swap maxSize 10444800 + 1024000 KB, 
> estimated 882215 objects
> 2015/03/09 15:23:34 kid2| Target number of buckets: 44110
> 2015/03/09 15:23:34 kid2| Using 65536 Store buckets
> 2015/03/09 15:23:34 kid2| Max Mem  size: 1024000 KB [shared]
> 2015/03/09 15:23:34 kid2| Max Swap size: 10444800 KB
> 2015/03/09 15:23:34 kid1| Logfile: opening log 
> stdio:/accerater/logs/webcache3/storea.log1
> 2015/03/09 15:23:34 kid1| WARNING: disk-cache maximum object size is 
> too large for mem-cache: 102400.00 KB > 90.00 KB
> 2015/03/09 15:23:34 kid1| Swap maxSize 10444800 + 1024000 KB, 
> estimated 882215 objects
> 2015/03/09 15:23:34 kid1| Target number of buckets: 44110
> 2015/03/09 15:23:34 kid1| Using 65536 Store buckets
> 2015/03/09 15:23:34 kid1| Max Mem  size: 1024000 KB [shared]
> 2015/03/09 15:23:34 kid1| Max Swap size: 10444800 KB
> 2015/03/09 15:23:34 kid2| Rebuilding storage in 
> /accerater/webcache3/storage/aufs2/2 (dirty log)
> 2015/03/09 15:23:34 kid2| Using Least Load store dir selection
> 2015/03/09 15:23:34 kid2| Set Current Directory to 
> /accerater/logs/webcache3/opmizer1
> 2015/03/09 15:23:34 kid1| Rebuilding storage in 
> /accerater/webcache3/storage/aufs1/1 (dirty log)
> 2015/03/09 15:23:34 kid1| Using Least Load store dir selection
> 2015/03/09 15:23:34 kid1| Set Current Directory to 
> /accerater/logs/webcache3/opmizer1
> 2015/03/09 15:23:34 kid3| Store logging disabled
> 2015/03/09 15:23:34 kid3| Swap maxSize 2709504 + 1024000 KB, estimated 
> 287192 objects
> 2015/03/09 15:23:34 kid3| Target number of buckets: 14359
> 2015/03/09 15:23:34 kid4| Store logging disabled
> 2015/03/09 15:23:34 kid3| Using 16384 Store buckets
> 2015/03/09 15:23:34 kid3| Max Mem  size: 1024000 KB [shared]
> 2015/03/09 15:23:34 kid4| Swap maxSize 0 + 1024000 KB, estimated 78769 
> objects
> 2015/03/09 15:23:34 kid3| Max Swap size: 2709504 KB
> 2015/03/09 15:23:34 kid4| Target number of buckets: 3938
> 2015/03/09 15:23:34 kid4| Using 8192 Store buckets
> 2015/03/09 15:23:34 kid4| Max Mem  size: 1024000 KB [shared]
> 2015/03/09 15:23:34 kid4| Max Swap size: 0 KB
> 2015/03/09 15:23:34 kid4| Using Least Load store dir selection
> 2015/03/09 15:23:34 kid4| Set Current Directory to 
> /accerater/logs/webcache3/opmizer1
>
> 2015/03/09 15:23:34 kid3| Using Least Load store dir selection
> 2015/03/09 15:23:34 kid3| Set Current Directory to 
> /accerater/logs/webcache3/opmizer1
> 2015/03/09 15:23:34 kid1| Finished loading MIME types and icons.
> 2015/03/09 15:23:34 kid1| HTCP Disabled.
> 2015/03/09 15:23:34 kid1| Sending SNMP messages from [::]:3401
> 2015/03/09 15:23:34 kid2| Finished loading MIME types and icons.
> 2015/03/09 15:23:34 kid2| HTCP Disabled.
> 2015/03/09 15:23:34 kid2| Sending SNMP messages from [::]:3402
> 2015/03/09 15:23:34 kid1| Squid plugin modules loaded: 0
> 2015/03/09 15:23:34 kid1| Adaptation support is off.
> 2015/03/09 15:23:34 kid2| Squid plugin modules loaded: 0
> 2015/03/09 15:23:34 kid2| Adaptation support is off.
> 2015/03/09 15:23:34 kid1| Done reading 
> /accerater/webcache3/storage/aufs1/1 swaplog (10 entries)
> 2015/03/09 15:23:34 kid2| Done reading 
> /accerater/webcache3/storage/aufs2/2 swaplog (13 entries)
> 2015/03/09 15:23:34 kid4| Finished loading MIME types and icons.
> 2015/03/09 15:23:34 kid3| Finished loading MIME types and icons.
> 2015/03/09 15:23:34 kid4| Accepting WCCPv2 messages on port 2048, FD 11.
> 2015/03/09 15:23:34 kid4| Initialising all WCCPv2 lists
> 2015/03/09 15:23:34 kid3| Squid plugin modules loaded: 0
> 2015/03/09 15:23:34 kid3| Adaptation support is off.
> 2015/03/09 15:23:34 kid3| Loading cache_dir #0 from 
> /accerater/webcache3/storage/rock1/rock
> 2015/03/09 15:23:34 kid4| Squid plugin modules loaded: 0
> 2015/03/09 15:23:34 kid4| Adaptation support is off.
> 2015/03/09 15:23:34 kid3| Store rebuilding is 0.59% complete
> 2015/03/09 15:23:35 kid1| Finished rebuilding storage from disk.
> 2015/03/09 15:23:35 kid1|        10 Entries scanned
> 2015/03/09 15:23:35 kid1|         0 Invalid entries.
> 2015/03/09 15:23:35 kid1|         0 With invalid flags.
> 2015/03/09 15:23:35 kid1|        10 Objects loaded.
> 2015/03/09 15:23:35 kid1|         0 Objects expired.
> 2015/03/09 15:23:35 kid1|         0 Objects cancelled.
> 2015/03/09 15:23:35 kid1|         0 Duplicate URLs purged.
> 2015/03/09 15:23:35 kid1|         0 Swapfile clashes avoided.
> 2015/03/09 15:23:35 kid1|   Took 1.01 seconds (  9.88 objects/sec).
> 2015/03/09 15:23:35 kid2| Finished rebuilding storage from disk.
> 2015/03/09 15:23:35 kid1| Beginning Validation Procedure
> 2015/03/09 15:23:35 kid2|        13 Entries scanned
> 2015/03/09 15:23:35 kid2|         0 Invalid entries.
>
> 2015/03/09 15:23:35 kid2|         0 With invalid flags.
> 2015/03/09 15:23:35 kid2|        13 Objects loaded.
> 2015/03/09 15:23:35 kid2|         0 Objects expired.
> 2015/03/09 15:23:35 kid2|         0 Objects cancelled.
> 2015/03/09 15:23:35 kid2|         0 Duplicate URLs purged.
> 2015/03/09 15:23:35 kid2|         0 Swapfile clashes avoided.
> 2015/03/09 15:23:35 kid2|   Took 1.01 seconds ( 12.84 objects/sec).
> 2015/03/09 15:23:35 kid2| Beginning Validation Procedure
> 2015/03/09 15:23:35 kid1|   Completed Validation Procedure
> 2015/03/09 15:23:35 kid1|   Validated 10 Entries
> 2015/03/09 15:23:35 kid1|   store_swap_size = 8840.00 KB
> 2015/03/09 15:23:35 kid1| Accepting HTTP Socket connections at 
> local=127.0.0.1:3220 remote=[::] FD 26 flags=1
> 2015/03/09 15:23:35 kid1| Accepting TPROXY intercepted HTTP Socket 
> connections at local=[::]:3221 remote=[::] FD 27 flags=17
> 2015/03/09 15:23:35 kid1| Accepting SNMP messages on [::]:3401
> 2015/03/09 15:23:35 kid2|   Completed Validation Procedure
> 2015/03/09 15:23:35 kid2|   Validated 13 Entries
> 2015/03/09 15:23:35 kid2|   store_swap_size = 16852.00 KB
> 2015/03/09 15:23:35 kid2| Accepting HTTP Socket connections at 
> local=127.0.0.1:3220 remote=[::] FD 26 flags=1
> 2015/03/09 15:23:35 kid2| Accepting TPROXY intercepted HTTP Socket 
> connections at local=[::]:3221 remote=[::] FD 27 flags=17
> 2015/03/09 15:23:35 kid2| Accepting SNMP messages on [::]:3402
> 2015/03/09 15:23:36 kid3| Finished rebuilding storage from disk.
> 2015/03/09 15:23:36 kid3|    169343 Entries scanned
> 2015/03/09 15:23:36 kid3|         0 Invalid entries.
> 2015/03/09 15:23:36 kid3|         0 With invalid flags.
> 2015/03/09 15:23:36 kid3|         0 Objects loaded.
> 2015/03/09 15:23:36 kid3|         0 Objects expired.
> 2015/03/09 15:23:36 kid3|         0 Objects cancelled.
> 2015/03/09 15:23:36 kid3|         0 Duplicate URLs purged.
> 2015/03/09 15:23:36 kid3|         0 Swapfile clashes avoided.
> 2015/03/09 15:23:36 kid3|   Took 1.40 seconds (  0.00 objects/sec).
> 2015/03/09 15:23:36 kid3| Beginning Validation Procedure
> 2015/03/09 15:23:36 kid3|   Completed Validation Procedure
> 2015/03/09 15:23:36 kid3|   Validated 0 Entries
> 2015/03/09 15:23:36 kid3|   store_swap_size = 16.00 KB
> 2015/03/09 15:23:36 kid3| storeLateRelease: released 0 objects
> 2015/03/09 15:23:36 kid1| storeLateRelease: released 0 objects
> 2015/03/09 15:23:36 kid2| storeLateRelease: released 0 objects
>
>
>
>
>
>
> 于 2015年03月09日 13:01, Amos Jeffries 写道:
>> On 9/03/2015 4:38 p.m., johnzeng wrote:
>>>
>>> Hello Dear All :
>>>
>>> I face a problem recently , When i config wccp ( tproxy ) environment (
>>> via using squid 3.5.2 ) ,
>>>
>>> if i disable cache_dir rock part ,and it will be success for wccp(
>>> tproxy) , and enable cache_dir aufs
>>>
>>> #cache_dir rock /accerater/webcache3/storage/rock1 2646 min-size=4096
>>> max-size=262144 max-swap-rate=250 swap-timeout=350
>>>
>>> but if i enable cache_dir rock part ,and it will be failure for wccp(
>>> tproxy) and enable cache_dir aufs
>>>
>>> cache_dir rock /accerater/webcache3/storage/rock1 2646 min-size=4096
>>> max-size=262144 max-swap-rate=250 swap-timeout=350
>>>
>>>
>>> Whether some of my config is error , if possible , please give me some
>>> advisement
>>>
>> For starters,
>>   WCCP is a network protocol Squid uses to inform remote routers that it
>> is active and what traffic it can receive.
>>   rock is a layout format for bits stored on a disk.
>>   ... they are *completely* unrelated.
>>
>>
>>
>>> This is my config
>>>
>>>
>>> thanks
>>>
>>> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
>>>
>>>
>>> coredump_dir /accerater/logs/webcache3/
>>> unlinkd_program /accerater/webcache3/libexec/unlinkd
>>> pid_filename /accerater/logs/webcache3/opmizer1/cache.pid
>>>
>>>
>>> workers 2
>>> cpu_affinity_map process_numbers=1,2 cores=1,3
>>>
>>> cache_dir rock /accerater/webcache3/storage/rock1 2646 min-size=4096
>>> max-size=262144 max-swap-rate=250 swap-timeout=350
>>>
>> You are telling Squid to start two controllers to the database file
>> /accerater/webcache3/storage/rock1 from *each* worker. There is zero
>> benefit from this and the two controllers may enounter collisions as
>> they compete for acces to the disk without sharing atomic locks. That
>> leads to cache corruption.
>>
>> Remove one of those two lines.
>>
>>
>>> if ${process_number} = 1
>>>
>>> cache_swap_state /accerater/logs/webcache3/opmizer1_swap_log1
>> Dont use cache_swap_state.
>>
>>> access_log stdio:/accerater/logs/webcache3/opmizer1_access.log squid
>> Use this instead (mind the wrap):
>>
>> access_log
>> stdio:/accerater/logs/webcache/opmizer${process_number}_access.log squid
>>
>>> cache_log /accerater/logs/webcache3/opmizer1_cache.log
>>
>> Use this instead:
>>
>> cache_log /accerater/logs/webcache3/opmizer${process_number}_cache.log
>>
>>> cache_store_log stdio:/accerater/logs/webcache3/opmizer1_store.log
>> You should not need cache_store_log at all.
>>
>> Either remove it or use this instead (mind the wrap):
>>
>> cache_store_log
>> stdio:/accerater/logs/webcache3/opmizer${process_number}_store.log
>>
>>
>>> url_rewrite_program /accerater/webcache3/media/mediatool/media2
>>> store_id_program /accerater/webcache3/media/mediatool/media1
>> Why do you have different binary executable names for the two workers
>> helpers?
>>
>> If they are actually different, then the traffic will have different
>> things applied randomly depending on which worker happened to accept the
>> TCP connection. If they are the same, then you only need to define them
>> once and workers will start their own sets as needed.
>>
>>
>>> unique_hostname fast_opmizer1
>>> snmp_port 3401
>> Use this instead:
>>
>>   unique_hostname fast_opmizer${process_number}
>>   snmp_port 340${process_number}
>>
>>
>> All of the above details can move up out of the per-worker area.
>>
>>
>>> #cache_dir rock /accerater/webcache3/storage/rock1 2646 min-size=4096
>>> max-size=262144 max-swap-rate=250 swap-timeout=350
>>>
>>> cache_dir aufs /accerater/webcache3/storage/aufs1/${process_number} 
>>> 5200
>>> 16 64 min-size=262145
>>>
>>> else
>>>
>>> #endif
>>>
>>>
>>> if ${process_number} = 2
>>>
>>>
>>> cache_swap_state /accerater/logs/webcache3/opmizer2_swap_log
>>> access_log stdio:/accerater/logs/webcache3/opmizer2_access.log squid
>>> cache_log /accerater/logs/webcache3/opmizer2_cache.log
>>> cache_store_log stdio:/accerater/logs/webcache3/opmizer2_store.log
>>> url_rewrite_program /accerater/webcache3/media/mediatool/media4
>>> store_id_program /accerater/webcache3/media/mediatool/media3
>>> unique_hostname fast_opmizer2
>>> snmp_port 3402
>>>
>> Same notes as for worker 1.
>>
>>
>>> #cache_dir rock /accerater/webcache3/storage/rock2 2646 min-size=4096
>>> max-size=262144 max-swap-rate=250 swap-timeout=350
>>>
>>> cache_dir aufs /accerater/webcache3/storage/aufs1/${process_number} 
>>> 5200
>>> 16 64 min-size=262145
>>>
>>> endif
>>>
>>> endif
>>>
>>>
>>>
>>> http_port 127.0.0.1:3220
>>> http_port 3221 tproxy
>>>
>>> wccp_version 2
>>> wccp2_router 192.168.2.1
>>> wccp2_forwarding_method 1
>>> wccp2_return_method 1
>>> wccp2_assignment_method 1
>>> wccp2_service dynamic 80
>>> wccp2_service dynamic 90
>>> wccp2_service_info 80 protocol=tcp flags=src_ip_hash priority=240 
>>> ports=80
>>> wccp2_service_info 90 protocol=tcp flags=dst_ip_hash,ports_source
>>> priority=240 ports=80
>> Both workers are telling the WCCP router in different packets that they
>> are available on the same IP:port. In theory that should work fine,
>> since the router is just getting twice as many updates as it needs to
>> keep the proxy registered. In practice some people are finding that
>> certain routers cant cope with the extra registration operations.
>>
>>
>>> tcp_outgoing_address 192.168.2.2
>>>
>> Be aware that TPROXY spoof the client outgong address. This line has no
>> effect on the TPROXY intercepted traffic. Only the traffic received on
>> port 3220 will be using this outgoing address.
>>   Your WCCP rules need to account for that by not depending on the 
>> packet
>> IP addresses.
>>
>>
>> Amos
>



More information about the squid-users mailing list