Ситуация такая: FreeBSD 4.9 Squid,nat,apache,samba,vsftpd.... сыпятся ошибки : negative sbsize for uid = 0. примерно раз в 12 часов сервер всает(не отвечает по http, ssh,но отвечает по пингу.... с консоли на консоль переключиться дает, а в bash или login писать ничего не получается) может кто сталкивался? куда копать?
>uid = 0. примерно раз в 12 часов сервер всает(не отвечает
>по http, ssh,но отвечает по пингу.... с консоли на консоль переключиться
>дает, а в bash или login писать ничего не получается) может
>кто сталкивался? куда копать?можете попробовать патч: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/66268
патч написан для другого репорта, но ИМХО, эти баги связаны..
попробуйте, вдруг поможет, или пообщайтесь с автором патча лично..
>>uid = 0. примерно раз в 12 часов сервер всает(не отвечает
>>по http, ssh,но отвечает по пингу.... с консоли на консоль переключиться
>>дает, а в bash или login писать ничего не получается) может
>>кто сталкивался? куда копать?
>
>можете попробовать патч: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/66268
>патч написан для другого репорта, но ИМХО, эти баги связаны..
>попробуйте, вдруг поможет, или пообщайтесь с автором патча лично..да сервер явно перегружен, если login не проходит - кирдык, ресурсов
не хватает, вероятно ни один процесс не удается запустить.
Тюнить ядро, ситстему, приложения и вероятно разносить сервисы по разным
машинам.
да , но что значит negative sbsize for uid = 0?
>Ситуация такая: FreeBSD 4.9 Squid,nat,apache,samba,vsftpd.... сыпятся ошибки : negative sbsize for
>uid = 0. примерно раз в 12 часов сервер всает(не отвечает
>по http, ssh,но отвечает по пингу.... с консоли на консоль переключиться
>дает, а в bash или login писать ничего не получается) может
>кто сталкивался? куда копать?Можешь потупить =)
/*
* Change the total socket buffer size a user has used.
*/
int
chgsbsize(uip, hiwat, to, max)
/* [<][>][^][v][top][bottom][index][help] */
struct uidinfo *uip;
u_long *hiwat;
u_long to;
rlim_t max;
{
rlim_t new;
int s;s = splnet();
mtx_lock(&uip->ui_mtx);
new = uip->ui_sbsize + to - *hiwat;
/* don't allow them to exceed max, but allow subtraction */
if (to > *hiwat && new > max) {
splx(s);
mtx_unlock(&uip->ui_mtx);
return (0);
}
uip->ui_sbsize = new;
*hiwat = to;
if (uip->ui_sbsize < 0)
printf("negative sbsize for uid = %d\n", uip->ui_uid);
splx(s);
mtx_unlock(&uip->ui_mtx);
return (1);
}