Мы провели нагрузочный тест нашего веб-приложения и обнаружили, что как только нагрузка превышает 40 пользователей, время ответа сервера резко возрастает. (Это была облачная машина с 256 МБ ОЗУ).
Итак, мы установили обратный прокси-сервер squid перед сервером apache. Что интересно, когда мы начали нагрузочное тестирование, мы поняли, что сервер неплохо работает даже при больших нагрузках. У нас есть причина для счастья, но мы хотим знать, что именно вызывает эти улучшения производительности.
Мы хотели бы знать следующее
Где мне искать эту информацию?
Анализ журнала доступа / кеширования 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.