Назад | Перейти на главную страницу

Как количественно оценить улучшение производительности приложения после установки прокси-сервера Squid

Мы провели нагрузочный тест нашего веб-приложения и обнаружили, что как только нагрузка превышает 40 пользователей, время ответа сервера резко возрастает. (Это была облачная машина с 256 МБ ОЗУ).

Итак, мы установили обратный прокси-сервер squid перед сервером apache. Что интересно, когда мы начали нагрузочное тестирование, мы поняли, что сервер неплохо работает даже при больших нагрузках. У нас есть причина для счастья, но мы хотим знать, что именно вызывает эти улучшения производительности.

Мы хотели бы знать следующее

  1. Какие запросы кэшируются, а какие нет.
  2. Cache Hits: Cache Miss

Где мне искать эту информацию?

Анализ журнала доступа / кеширования Squid - один из способов сделать это, но есть и другие способы.

Вы должны использовать Squid SNMP MIB (если вы уже используете 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

Получите пакет Calamaris (http://cord.de/tools/squid/calamaris/). Это читает ваши файлы журнала squid (при условии, что вы включили ведение журнала) и выводит отчеты, которые должны дать вам то, что вы ищете.

выходит за рамки 40 пользователей

Это бессмысленная мера загрузки веб-сервера.

(Это была облачная машина с 256 МБ ОЗУ) ... Итак, мы установили обратный прокси-сервер squid

Не видя большого количества данных о том, как ведет себя ваша система, я мог бы предположить, что проблемы с производительностью являются результатом ограниченного объема памяти на сервере; добавление кальмара еще больше уменьшит это.

сервер работает очень хорошо

черт возьми. Это очень неожиданно - вы уверены, что сначала оптимизировали веб-сервер?

Calamaris даст вам много подробностей о том, что делает Squid.