URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 2514
[ Назад ]

Исходное сообщение
"Почему squid не берет запрашиваемые страницы из кеша?"

Отправлено winch , 28-Сен-04 12:22 
При запросе одного и того же ресурса squid каждый раз загружает его из И-нета, хотя файлы в cache directories в размерах растут -  похоже, брать из них кэшируемые объекты squid не желает.

---cut from access.log ---------------
1096357871.299    417 192.168.1.121 TCP_MISS/304 270 GET  http://www.corbina.net/~alx/squid/ winch DIRECT/195.14.50.23 -
1096358071.849    112 192.168.1.121 TCP_MISS/304 270 GET http://www.corbina.net/~alx/squid/ winch DIRECT/195.14.50.23 -
                                                                        ^-(почему не TCP_HIT)-?                                                                       ^---?

Вся настойка по умолчнию, добавленна только аутефикация (ncsa_auth)
Внимание вопрос: почему не используется кэш?


Содержание

Сообщения в этом обсуждении
"Почему squid не берет запрашиваемые страницы из кеша?"
Отправлено _ZzZ_ , 30-Сен-04 14:45 
Мне кажется что всетаки обьет берется из кеша

TCP_MISS/304 270 GET http://www.corbina.net/~alx/squid/
Сервак отвечает 304 значит not modified и размер 270 байт маловато для чего либо(HTTP и только)

остается вопрос почему TCP_MISS


"Почему squid не берет запрашиваемые страницы из кеша?"
Отправлено winch , 01-Окт-04 14:27 
>Мне кажется что всетаки обьет берется из кеша
>
>TCP_MISS/304 270 GET http://www.corbina.net/~alx/squid/
>Сервак отвечает 304 значит not modified и размер 270 байт маловато для
>чего либо(HTTP и только)
>

Проверил на странице, на которой я раньше точно не разу не был.
первый запрос:
1096625611.133    481 192.168.1.21 TCP_MISS/302 618 GET http://squid.nlanr.net/Squid/mirrors.html winch DIRECT/206.168.0.9 text/html
второй и последующие зпросы:
1096625630.640   1797 192.168.1.21 TCP_MISS/302 618 GET http://squid.nlanr.net/Squid/mirrors.html winch DIRECT/206.168.0.9 text/html

т.е. абсолютно идентичные, оба по 618 байт, отданных клиенту.
Надо еще снифером, для верности, проверить, но мне кажется - из кеша НЕ берет.


"Почему squid не берет запрашиваемые страницы из кеша?"
Отправлено _ZzZ_ , 04-Окт-04 07:51 
>Проверил на странице, на которой я раньше точно не разу не был.
>
>первый запрос:
>1096625611.133    481 192.168.1.21 TCP_MISS/302 618 GET http://squid.nlanr.net/Squid/mirrors.html winch DIRECT/206.168.0.9
>text/html
>второй и последующие зпросы:
>1096625630.640   1797 192.168.1.21 TCP_MISS/302 618 GET http://squid.nlanr.net/Squid/mirrors.html winch DIRECT/206.168.0.9 text/html
>
>
>т.е. абсолютно идентичные, оба по 618 байт, отданных клиенту.
>Надо еще снифером, для верности, проверить, но мне кажется - из кеша
>НЕ берет.

Снифер эт хорошо
Неплохо бы еще в store.log поискать что-либо не предмет кеширования

Рестартани сквида
посмотри что пишется в cache.log
   storeDirWriteCleanLogs: Starting...        
   Finished.  Wrote XXXXX entries. (есть-ли в кеше чтонибудь вообще)      
   Took 0.0 seconds (1759750.0 entries/sec).  


"Почему squid не берет запрашиваемые страницы из кеша?"
Отправлено winch , 06-Окт-04 11:49 
>Снифер эт хорошо
полка со снифером не получается :-(

>посмотри что пишется в cache.log
вроде что то есть:
   storeDirWriteCleanLogs: Starting...        
   Finished.  Wrote 4648 entries.
   Took 0.0 seconds (1630305.2 entries/sec).  

>Неплохо бы еще в store.log поискать что-либо не предмет кеширования
в store.log:
куча записей - SWAPOUT (объект был сохранен на диск)
есть - RELEASE (объект был удален из кеша)
и не одной - SWAPIN (объект есть на диске и прочитан в память).
т.е. получается, что он только записывает в кеш и удаляет из него, а при запрсе там не ищет, или не находит.


"Почему squid не берет запрашиваемые страницы из кеша?"
Отправлено Klice , 26-Мрт-05 12:31 
Хе :)
Самого такие вопросы мучали, я нашел на них ответы. Постараюсь рассказать поподробнее что б потом переместили в статьи. ))

Тут два вопроса, между собой не свзяных:
1) Почему на один и тот же урл два раз TCP_MISS?
Оказывается надо внимательнее читать доки, код 304 означает, что сервер сообщил, что данный объект не изменился, вся строка в целом означает не то, что объект скачан, а то что браузер клиента отправил запрос на проверку изменился ли объект, и получил отрицательный ответ, а сам объект он взял и своего кэше, а не кеша squid. Потому этих строк может быть очень много для одних и тех же объектов.


2) Почему нет SWAPIN
См выше про доки :) SWAPIN - означет что объект был перемещен с диска в память... все. Это совсем не значит, что он был отдан клиенту. В память перемещаются часто используемы объекты (SWAPIN) а на диск записываются редко используемы (SWAPOUT). Сам сквид может взять объект как с памяти (быстрее) так и с диска (медленее). Т.е. если объект по логом был отдан, а в store.log есть для него SWAPOUT но нет SWAPIN, то это означет то, что он был прочитан прямо с диска. И более того начиная со Squid 2, все объекты берутся прямо с диска, а не перемещаюся в память, потому в его логах и нет SWAPIN.

Удачи!