如何量化安装 squid 代理后应用程序性能的提升

如何量化安装 squid 代理后应用程序性能的提升

我们对我们的 Web 应用程序进行了负载测试,发现一旦负载超过 40 个用户,服务器响应时间就会急剧增加。(这是一台 256MB RAM 的云机器)。

因此我们在 Apache 服务器前面安装了 squid 反向代理。有趣的是,当我们开始负载测试时,我们发现服务器即使在负载较大的情况下也能表现良好。我们有理由感到高兴,但我们想知道究竟是什么导致了这种性能改进。

我们想知道以下事情

  1. 哪些请求被缓存,哪些没有被缓存。
  2. 缓存命中:缓存未命中

我应该在哪里寻找这些信息?

答案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 正在做什么的大量详细信息。

相关内容