|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Ramazan Ja-Far 2:5020/400 24 Jul 2002 20:55:41 To : All Subject : offline squid, "age > min_age" and cache miss -------------------------------------------------------------------------------- Hi, all! Обнаружил такую проблему - squid не всегда отдаёт имеющуюся в кэше устаревшую страницу (в оффлайновом режиме). К примеру, http://www.redhat.com/advice/ask.html Шапчатый сервер (апач) изначально возвращает эту страницу без заголовков expire (EX:-1) и last modified (LM:-1). В логе видно, что ask.html складывается (SWAPOUT) в кэш. // BTW, у меня в конфиге min-age == 7 минут. Входим в оффлайн, запрашиваем страницу, получаем ERROR страницу: While trying to retrieve the URL: http://www.redhat.com/advice/ask.html The following error was encountered: * Connection Failed The system returned: (101) Network is unreachable В /var/log/squid/cache.log видим, что объект определён как устаревший: 2002/07/24 18:24:00| refreshCheck: 'http://www.redhat.com/advice/ask.html' 2002/07/24 18:24:00| STALE: age 75105 > min 420 2002/07/24 18:24:00| Staleness = 74685 2002/07/24 18:24:00| refreshCheck: Matched '^http://[^/]+redhat 420 100% 259200' 2002/07/24 18:24:00| refreshCheck: age = 75105 2002/07/24 18:24:00| check_time: Wed, 24 Jul 2002 15:24:00 GMT 2002/07/24 18:24:00| entry->timestamp: Tue, 23 Jul 2002 18:32:15 GMT Теперь сходим обновить ask.html, при помощи /usr/sbin/client: HTTP/1.0 200 OK Date: Wed, 24 Jul 2002 15:48:22 GMT Server: Apache/1.3.12 (Unix) (Red Hat/Linux) mod_perl/1.24 Set-Cookie: pg-session-id=52aade8db076b8ee1ae7499c94a132e3; path=/; domain=www.redhat.com Content-Length: 29272 Cache-Control: public Content-Type: text/html; charset=iso-8859-1 X-Cache: MISS from cherokee.ultraworld.kiev.ua Proxy-Connection: close BTW, ключ этого ask.html вчера был 2CBC4F228BF71BFED0DF60B310E0FF1A, по данным вчерашнего store.log Посмотрим, что у нас в /var/log/squid/store.log сейчас: 1027525706.309 RELEASE 00 000011D0 2CBC4F228BF71BFED0DF60B310E0FF1A ? ? ? ? ?/? ?/? ? ? 1027525709.529 SWAPOUT 00 000000B4 2CBC4F228BF71BFED0DF60B310E0FF1A 200 1027525 702 -1 -1 text/html 29272/29272 GET http://www.redhat.com/advice/ask.html И что происходило в /var/log/squid/cache.log в то же самое время: 2002/07/24 18:48:24| refreshCheck: 'http://www.redhat.com/advice/ask.html' 2002/07/24 18:48:24| STALE: age 76569 > min 420 ... 2002/07/24 18:48:25| getMaxAge: 'http://www.redhat.com/advice/ask.html' 2002/07/24 18:48:26| ctx: enter level 0: 'http://www.redhat.com/advice /ask.html' 2002/07/24 18:48:26| refreshCheck: 'http://www.redhat.com/advice/ask.html' 2002/07/24 18:48:26| FRESH: age 64 <= min 420 ... 2002/07/24 18:49:03| ctx: exit level 0 Видимо, squid прибил кэшированный ask.html и перезаписал. Прошла пара минут, я вывел squid в оффлайн и он успел выдать ask.html из кэша (пока ещё файл не устарел): 2002/07/24 18:52:07| refreshCheck: 'http://www.redhat.com/advice/ask.html' 2002/07/24 18:52:07| FRESH: age 225 <= min 420 Спустя 15 минут устаревший ask.html из кэша уже не отдаётся: [ramazan@cherokee ramazan]$ /usr/sbin/client -v "http://www.redhat.com/advice/ask.html" HTTP/1.0 503 Service Unavailable Server: Squid/2.4.STABLE6 Mime-Version: 1.0 Date: Wed, 24 Jul 2002 16:09:35 GMT Content-Type: text/html Content-Length: 743 Expires: Wed, 24 Jul 2002 16:09:35 GMT X-Squid-Error: ERR_CONNECT_FAIL 101 X-Cache: MISS from cherokee.ultraworld.kiev.ua Старость ask.html на момент последнего запроса подтверждает /var/log/squid/cache.log: 2002/07/24 19:09:35| refreshCheck: 'http://www.redhat.com/advice/ask.html' 2002/07/24 19:09:35| STALE: age 1273 > min 420 Я даже посмотрел в "CacheMgr@localhost: objects" - есть наш файл: KEY 2CBC4F228BF71BFED0DF60B310E0FF1A STORE_OK NOT_IN_MEMORY SWAPOUT_DONE PING_DONE CACHABLE,DISPATCHED,VALIDATED LV:1027525702 LU:1027526975 LM:-1 EX:-1 0 locks, 0 clients, 3 refs Swap Dir 0, File 0X0000B4 Т.е. он лежит _мёртвым_ грузом? Вот такая фигня. Что самое интересное, это очень сильно смахивает на баг или багофичу, т.к. в принципе устаревшие страницы мой squid выдаёт. К примеру, http://users.g.com.ua/~batmanb/box/a1/index.shtml HTTP/1.0 200 OK Date: Wed, 24 Jul 2002 00:38:56 GMT Server: Apache/1.3.12 (Unix) rus/PL29.4 Content-Type: text/html; charset=koi8-u Expires: Thu, 01 Jan 1970 00:00:01 GMT Last-Modified: Wed, 24 Jul 2002 00:38:56 GMT X-Cache: HIT from cherokee.ultraworld.kiev.ua При этом index.shtml тоже устаревший (я смотрел в cache.log): 2002/07/24 19:22:12| refreshCheck: 'http://users.g.com.ua/~batmanb/box/ a1/index.shtml' 2002/07/24 19:22:12| STALE: expires 1 < check_time 1027527732 Только index.shtml - устаревший по другой причине: expires < now, а ask.html по причине age > min_age. Может поэтому squid его не отдаёт из кэша? Или squid не понял заголовок Cache-Control: public? Судя по исходникам сквида, с CacheControl: public там всё в порядке... Буду признателен за любые соображения или хотя бы подтверждение воспроизводимости бага на ваших системах. -- Bye! Ramazan --- ifmail v.2.15dev5 * Origin: Svit Online (post does not reflect views of Golden Tele (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/348435dbd81ab.html, оценка из 5, голосов 10
|