Joined: 19 Jan 2002 Posts: 106 Location: Мальцев Владимир Львович Occupation: Тюменская ГАСА Interests: Тюмень
Posted: 15 Mar 2004 18:02 Post subject: Error SYXCDX/1001 DOS ERROR 106
Помогите, пожалуйста, горим!
Отлетает на открытии баз в малоценке, в зарплате в ошибку 106, в ошибку 4 и в ошибку 5.
Переставили сервак, ключ - и поехало.
Конфигурация такая.
Файл-сервер Линух 2.4.20+ MARS-NWE.
Сервер ключа - отдельный, Netware 3.12. Ключ - Rainbow
Клиентские тачки разные, от Win98 до Win XP
БЭСТ 10.2 без заплаток, CMOD
FILES - 240, BUFFERS - 80, SET CLIPPER - F180
_default.pif прописан согласно рекомендациям ИС (best4w2k) _________________ Владимир Л. Мальцев
mailto: maltsev@tumgasa.ru
Posted: 15 Mar 2004 20:33 Post subject: Re: Error SYXCDX/1001 DOS ERROR 106
Vladimir wrote:
Помогите, пожалуйста, горим!
Отлетает на открытии баз в малоценке, в зарплате в ошибку 106, в ошибку 4 и в ошибку 5.
Переставили сервак, ключ - и поехало.
Конфигурация такая.
Файл-сервер Линух 2.4.20+ MARS-NWE.
Сервер ключа - отдельный, Netware 3.12. Ключ - Rainbow
Клиентские тачки разные, от Win98 до Win XP
БЭСТ 10.2 без заплаток, CMOD
FILES - 240, BUFFERS - 80, SET CLIPPER - F180
_default.pif прописан согласно рекомендациям ИС (best4w2k)
Если дело в серваке, то вернуться назад, а потом экспериментировать.
ну а теперь главное
Subject : samba & kernel - MAX_OPEN_FILES
Dis is 0neHalf, Dmitry!
Итак, повесть "Как я открыл в Linux 2000 файлов". Всем, кто любит 1C
посвящается. Привожу детальное описание действий по шагам. Hеобходимо:
1. Обнаружить что 1024 файлов на процесс для эксплуатации этого
угребища маловато.
> Вообще-то 1С открывает где-то 380 - 400 ф-лов,
возможно, что данный процесс открывае еще какие-то дескрипторы, типа логов, сомнительно, чтобы это было так, но приводимая цифра слишком внушительна. <
2. Прочитать /usr/src/linux/Documentation/proc.txt возле волшебного
слова file-max. Обнаружить, что для изменения лимита per-process
надо изменить NR_OPEN в limits.h и fs.h находящихся в
/usr/src/include/linux.
3. Поменять их скажем на 2048.
4. сказать make zImage && make modules && make modules_install
5. прописать в lilo новое ядро, сказать lilo и перегрузиться.
6. обнаружить вопль get_unused_fd: тра-ля-ля и нежелание грузиться
7. Hажать Reset, загрузить старое ядро.
8. Вместо того, чтобы запускать newsreader и ныть в ru.linux что
звиздец эхотагу и флеймить о его пригодности для той или иной
задачи, зайти в /usr/src/linux/.
9. сказать rgrep get_unused_fd *.
10. Обнаружить эту функцию в fs/open.c
11. Обнаружить в ней следующий код:
=== struct files_struct * files = current->files;
int fd, error;
error = -EMFILE;
fd = find_first_zero_bit(&files->open_fds, NR_OPEN);
=== 12. Исследовать include/asm на предмет current и обнаружить что это
struct task_state
13. Исследовать include/linux/sched.h на предмет struct task_state и
увидеть что ее поле files представляет собой struct file_struct
14. Обнаружить, что поле open_fds в struct file_struct представляет
собой fd_set, что есть ни что иное, как __kernel_fd_set.
Последняя в свою очередь определена в include/linux/posix_types.h.
15. Обнаружить в include/linux/posix_types.h такой кусок кода:
===#undef __NFDBITS
#define __NFDBITS (8 * sizeof(unsigned long))
typedef struct {
unsigned long fds_bits [__FDSET_LONGS];
} __kernel_fd_set;
=== 16. Применив /dev/head сообразить, что стоило бы поставить
FD_SETSIZE >= NR_OPEN, например 2048.
17. Повторить шаги 4 и 5.
18. Сказать ulimit -n и увидеть 2048
19. Если еще не верится - скомпилить нижеприведенный суперпрограм:
===#include <stdio.h>
main ()
{
FILE *fp;
int i;
char name[100];
mkdir("testdir");
for(i = 0; i < 2000; i++) {
sprintf(name, "testdir/%d", i);
if ( (fp = fopen(name, "wb")) == NULL)
break;
}
printf("%d", i);
}
=== 20. Запустить ее и увидеть что в testdir - 2000 файлов.
Все это заняло у меня 40 минут, включая 2 компиляции ядра.
Примечания: 1) от шага 3 можно сразу перейти к шагу 16
2) передайте тем, кто заведует proc.txt и posix_types.h что не
помешало бы сделать __FD_SETSIZE зависимым от NR_OPEN или
хотябы это описать.
3) Внесите это в FAQ
4) В эксперименте принимали участие: ядро - 2.2.10, без ac-XXX ,
glibc-2.0.7-13, SysVinit-2.76-1. Дистрибутив - RH 5.1
Мораль сей басни такова: чем устраивать многодневный флейм по поводу
того нужны ли в MC часы и где им положено быть, проще взять исходники и
потратить полчаса максимум на добавление этих часов.
Это письмо написал грязный, волосатый, небритый му$@#к, в миру Kolya Nesterov
Press <Del> <Enter> [Team VT Dept]
==============================================================================--
Best regards -- /Peter
mailto: peter@digger.org.ru
--- Gnus/5.0803 (Gnus v5.8.3) XEmacs/21.1 (Bryce Canyon)
* Origin: Juggernout News Server (2:5020/1309.332)
Joined: 31 Dec 2001 Posts: 1696 Location: Гусев Михаил
Interests: Москва
Posted: 16 Mar 2004 10:08 Post subject:
Quote:
Файл-сервер Линух 2.4.20+ MARS-NWE.
Я понимаю, что своим нытьем делу не помогаю. Но вот он прекрасный пример того, что называется - "вам шашечки или ехать?"
Для БЭСТа нужен сервер Novell Netware, а не Samba/Mamba и т.д.
А тут у человека вместо того чтобы спокойно работать в БЭСТе на нелюбимом всеми Нетвари идет битва с сервером на Линухе. Зато модно, аж жуть. _________________ http://santech.chat.ru/bro.zip - удобный броузер/редактор БД
Posted: 16 Mar 2004 10:36 Post subject: Re: Error SYXCDX/1001 DOS ERROR 106
gennady wrote:
Если дело в серваке, то вернуться назад, а потом экспериментировать. ну а теперь главное ...
Это, конечно все очень интересно (может и пригодится для 1С), но вот только зачем для сессии, в которой работает Б4 так много открытых файлов? ИС то говорит, что вообще ~250 достаточно, а вы тут > 1024 предлагае _________________ http://v32.ru - печать и экспорт в Excel отчетов БЕСТ4.
Posted: 16 Mar 2004 14:16 Post subject: Re: Error SYXCDX/1001 DOS ERROR 106
Magistr wrote:
gennady wrote:
Если дело в серваке, то вернуться назад, а потом экспериментировать. ну а теперь главное ...
Это, конечно все очень интересно (может и пригодится для 1С), но вот только зачем для сессии, в которой работает Б4 так много открытых файлов? ИС то говорит, что вообще ~250 достаточно, а вы тут > 1024 предлагаете.
Вообще-то, я предлагаю откатиться, а приводимый пример предлагает некий путь поиска проблемы, причем я отметил, что на самом деле 1С
открывает около 400 файлов, это данные экспериментально проверялись на сервере NW4.11, поставил я однажды туда 1С и не смог запустить, пришлось поиграть сетами на сервере и настроить клиента не поумочанию.
Суть проблемы очень похожа на описаную.
В linux глубоко я не лазил, работает он у меня маршрутизатором с файеволом, очень удобно на хилой машине. Каждому зверю свое место, обжегся я однажды на ДЕМОСе, работало великолепно и даже на дисках, которые другие ОС считали убитыми, но когда рухнуло мало не показалось Только паранойя спасла
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum