我们对我们的 Web 应用程序进行了负载测试,发现一旦负载超过 40 个用户,服务器响应时间就会急剧增加。(这是一台 256MB RAM 的云机器)。
因此我们在 Apache 服务器前面安装了 squid 反向代理。有趣的是,当我们开始负载测试时,我们发现服务器即使在负载较大的情况下也能表现良好。我们有理由感到高兴,但我们想知道究竟是什么导致了这种性能改进。
我们想知道以下事情
- 哪些请求被缓存,哪些没有被缓存。
- 缓存命中:缓存未命中
我应该在哪里寻找这些信息?
答案1
Squid 访问/缓存日志解析是实现此目的的一种方法,但也有其他方法。
你应该使用Squid SNMP 管理信息库(如果您已经使用 SNMP 来监控您的服务器)获取有关命中/未命中率的一般统计信息。
squidclient
是一款出色的查询 Squid 状态的命令行工具。它可以显示缓存的对象、Squid 进程状态、缓存的 IP 地址、磁盘子系统状态、打开的文件描述符等等。尝试squidclient -h your_squid_host -p your_squid_port -u your_user -w your_password mgr:menu
所有可能的选项。可以在 中配置用户和密码squid.conf
。
以下是可能的选项squidclient
:
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
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
non_peers List of Unknown sites sending ICP messages public
答案2
获取 Calamaris 包 (http://cord.de/tools/squid/calamaris/)。这将读取您的 squid 日志文件(假设您已打开日志记录)并输出报告,这些报告应该能为您提供所需的信息。
答案3
超过 40 个用户
对于网络服务器负载来说这是一个毫无意义的测量。
(这是一台 256MB RAM 的云机器)所以我们安装了 squid 反向代理
在没有看到大量关于你的系统如何运行的数据的情况下,我猜测性能问题是由于服务器内存有限造成的;添加 squid 将进一步减少这一问题。
服务器运行良好
天哪。这太出乎意料了——你确定你首先优化了网络服务器吗?
鱿鱼将为您提供有关 squid 正在做什么的大量详细信息。