quinta-feira, 25 de novembro de 2010

Obtendo informações sobre seu Squid em produção com o squidclient.

Olá comunidade.

Hoje trago uma dica de utilitário de linha de comando para acesso rápido a informações sobre o squid em ambiente de produção, o squidclient.

OBS: Esse post não irá tratar da instalação do squid uma vez que existem diversos tutoriais para tal disponíveis na web.

O squid é um proxy bastante poderoso, porém nem sempre é trivial fazer o dimensionamento do mesmo para um ambiente uma vez que existem diversas variáveis envolvidas como número de usuários acessando o proxy simultâneamente, quantidade de memória necessária, número suficiente de "file descriptors", a quantidade necessária de instâncias de autenticação quando em conjunto com o AD ou outra fonte de autenticação, etc.

Para facilitar os ajustes necessários a sua infraestrutura podemos utilizar a ferramenta squidclient.

No ubuntu server instalamos o utilitário diretamente dos repositórios com o seguinte comando:

apt-get install squidclient

Após a instalação faremos nossa primeira verificação.

squidclient mgr:info

Será exibida uma tela conforme a tela abaixo:

HTTP/1.0 200 OK
Server: squid
Date: Thu, 25 Nov 2010 20:08:11 GMT
Content-Type: text/plain
Expires: Thu, 25 Nov 2010 20:08:11 GMT
X-Cache: MISS from meuservidor
X-Cache-Lookup: MISS from meuservidor:3128
Via: 1.0 meuservidor:3128 (squid)
Connection: close

Squid Object Cache: Version 2.7.STABLE7
Start Time: Thu, 18 Nov 2010 14:41:54 GMT
Current Time: Thu, 25 Nov 2010 20:08:11 GMT
Connection information for squid:
Number of clients accessing cache: 604
Number of HTTP requests received: 10278482
Number of ICP messages received: 0
Number of ICP messages sent: 0
Number of queued ICP replies: 0
Number of HTCP messages received: 0
Number of HTCP messages sent: 0
Request failure ratio: 0.02
Average HTTP requests per minute since start: 987.7
Average ICP messages per minute since start: 0.0
Select loop called: 91903423 times, 6.794 ms avg
Cache information for squid:
Request Hit Ratios: 5min: 0.0%, 60min: 0.0%
Byte Hit Ratios: 5min: 7.6%, 60min: 12.0%
Request Memory Hit Ratios: 5min: 0.0%, 60min: 0.0%
Request Disk Hit Ratios: 5min: 0.0%, 60min: 0.0%
Storage Swap size: 0 KB
Storage Mem size: 108 KB
Mean Object Size: 0.00 KB
Requests given to unlinkd: 0
Median Service Times (seconds) 5 min 60 min:
HTTP Requests (All): 0.05331 0.00379
Cache Misses: 0.09736 0.09219
Cache Hits: 0.00000 0.00000
Near Hits: 0.00000 0.00000
Not-Modified Replies: 0.00000 0.00000
DNS Lookups: 0.05815 0.07284
ICP Queries: 0.00000 0.00000
Resource usage for squid:
UP Time: 624377.489 seconds
CPU Time: 4717.215 seconds
CPU Usage: 0.76%
CPU Usage, 5 minute avg: 0.65%
CPU Usage, 60 minute avg: 0.89%
Process Data Segment Size via sbrk(): 39908 KB
Maximum Resident Size: 174464 KB
Page faults with physical i/o: 1
Memory usage for squid via mallinfo():
Total space in arena: 39908 KB
Ordinary blocks: 23498 KB 4284 blks
Small blocks: 0 KB 0 blks
Holding blocks: 1108 KB 1 blks
Free Small blocks: 0 KB
Free Ordinary blocks: 16409 KB
Total in use: 24606 KB 60%
Total free: 16409 KB 40%
Total size: 41016 KB
Memory accounted for:
Total accounted: 9511 KB
memPoolAlloc calls: 1287300273
memPoolFree calls: 1287290977
File descriptor usage for squid:
Maximum number of file descriptors: 4096
Largest file desc currently in use: 1151
Number of file desc currently in use: 584
Files queued for open: 0
Available number of file descriptors: 3512
Reserved number of file descriptors: 100
Store Disk files open: 0
IO loop method: epoll
Internal Data Structures:
29 StoreEntries
29 StoreEntries with MemObjects
26 Hot Object Cache Items
0 on-disk objects

Observe que é possível verificar diversos pontos de interesse como a quantidade de "file descriptors" utilizada, a quantidade de memória utilizada, a quantidade de clientes acessando o cache, dentre outros.

Também podemos obter informações mais detalhadas sobre opções específicas. As opções possíveis podem ser exibidas com o comando:

squidclient mgr:menu

HTTP/1.0 200 OK
Server: squid
Date: Thu, 25 Nov 2010 20:13:18 GMT
Content-Type: text/plain
Expires: Thu, 25 Nov 2010 20:13:18 GMT
X-Cache: MISS from meuservidor
X-Cache-Lookup: MISS from meuservidor:3128
Via: 1.0 meuservidor:3128 (squid)
Connection: close

mem Memory Utilization public
cbdata Callback Data Registry Contents public
events Event Queue public
squidaio_counts Async IO Function Counters public
coss COSS Stats public
diskd DISKD Stats public
config Current Squid Configuration hidden
ipcache IP Cache Stats and Contents public
fqdncache FQDN Cache Stats and Contents public
idns Internal DNS Statistics public
ntlmauthenticator NTLM User Authenticator Stats public
external_acl External ACL stats public
http_headers HTTP Header Statistics public
menu This Cachemanager Menu public
shutdown Shut Down the Squid Process hidden
reconfigure Reconfigure the Squid Process hidden
offline_toggle Toggle offline_mode setting hidden
info General Runtime Information public
filedescriptors Process Filedescriptor Allocation public
objects All Cache Objects public
vm_objects In-Memory and In-Transit Objects public
openfd_objects Objects with Swapout files open public
pending_objects Objects being retreived from the network public
client_objects Objects being sent to clients public
io Server-side network read() size histograms public
counters Traffic and Resource Counters public
peer_select Peer Selection Algorithms public
digest_stats Cache Digest and ICP blob public
5min 5 Minute Average of Counters public
60min 60 Minute Average of Counters public
utilization Cache Utilization public
histograms Full Histogram Counts public
active_requests Client-side Active Requests public
store_digest Store Digest public
storedir Store Directory Stats public
store_check_cachable_stats storeCheckCachable() Stats public
store_io Store IO Interface Stats public
pconn Persistent Connection Utilization Histograms public
refresh Refresh Algorithm Statistics public
delay Delay Pool Levels public
forward Request Forwarding Statistics public
client_list Cache Client List public
asndb AS Number Database public
server_list Peer Cache Statistics public


Com as informações providas pelo squidclient podemos dimensionar de forma adequada o servidor squid aos mais diversos cenários, sempre com uma visão em tempo real do ambiente.

É isso ai, um grande abraço a todos...


Um comentário: