Summary: | Увеличить количество файлдескрипторов | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Andy Gorev <master> |
Component: | squid | Assignee: | Kostya Timoshenko <kt> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P4 | CC: | shaba |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Andy Gorev
2003-06-20 01:11:07 MSD
Есть рабочее/проверенное решение: http://devel.squid-cache.org/hno/linux-lfd.html более подробно: http://www.squid-cache.org/mail-archive/squid-users/200111/0471.html Запрос на правку glibc-devel я уже оформил в #3821 Рассказываю, что получилось у меня. После исследования glibc-devel и squid я понял, что FD_SETSIZE роли почти что и не играет, особенно если процесс сам в курсе о rlimits и т.п. В результате остаётся только обмануть configure/automake, так как squid не будет подниматься выше SQUID_MAXFD независимо от лимитов. Я проверил результат на своём контрибе и получилось! 2004/03/16 17:52:12| With 8192 file descriptors available Реально такое количество fd не тестировалось, пока негде. По наличию результатов будет пост на http://pilot.org.ua/ALT/#squid 1. Изменения в спек: +%__subst 's/^#define SQUID_MAXFD 1024/#define SQUID_MAXFD 8192/' include/autoconf.h %make_build 2. Изменения в squid.init: + ulimit -n 8192 daemon $SQUID $SQUID_OPTS 1. изменение в спек полностью поддерживаю 2. в squid.init у меня тоже именно так PS по поводу тестирования с 8192 дескрипторами, стало меньше тормозов, да и вообще - полет нормальный. my general runtime: Start Time: Thu, 11 Mar 2004 16:09:36 GMT Current Time: Wed, 17 Mar 2004 13:43:27 GMT Connection information for squid: Number of clients accessing cache: 139 Number of HTTP requests received: 9270549 Average HTTP requests per minute since start: 1091.4 Cache information for squid: Request Hit Ratios: 5min: 28.6%, 60min: 29.2% Byte Hit Ratios: 5min: 19.4%, 60min: 14.2% Request Memory Hit Ratios: 5min: 7.0%, 60min: 8.5% Request Disk Hit Ratios: 5min: 39.2%, 60min: 34.2% Storage Swap size: 7557112 KB Storage Mem size: 98292 KB Resource usage for squid: UP Time: 509630.769 seconds CPU Time: 85896.150 seconds CPU Usage: 16.85% CPU Usage, 5 minute avg: 48.44% File descriptor usage for squid: Maximum number of file descriptors: 8192 Largest file desc currently in use: 711 Number of file desc currently in use: 689 Available number of file descriptors: 7503 Reserved number of file descriptors: 100 Internal Data Structures: 643019 StoreEntries 19811 StoreEntries with MemObjects 19678 Hot Object Cache Items 642117 on-disk objects Это по какому методу? Это по "грязному" методу с хаком glibc http://devel.squid-cache.org/hno/linux-lfd.html Ваш способ с правкой спека я не проверял, т.к. у меня нормально работает сейчас моя сборка. За последних пару дней были ситуации, когда канал пропадал до 10 минут, а запросы от клиентов продолжались. В эти моменты сквид ставил запросы в очередь, при этом количество используемых дескрипторов возрастало до трех тысяч. После возобновления работы канала, все эти запросы были обработаны и сквид честно расслабился до 600 дескрипторов. В логах при этом никакой ругани небыло. То-есть все работает именно так, как и требовалось. Тогда нужно проверить правильный метод, ведь обсудили, что FD_SETSIZE трогать нельзя. Правильный метод работает, проверено временем. Давайте внедрять? Ура, товарищи. |