пятница, 5 апреля 2013 г.

Зависание (DoS) Samba при открытии в Netbeans большого проекта

Здравствуйте, меня зовут Валерий и я веб-разработчик..

У меня дома есть сервер-роутер, на нем 2 виртуалки, одна - хостит проекты (веб-разработка), другая самба (сетевые медиаресурсы).
На самбе примонтирована шара с проектами для доступа по сети и программировании из windows.

Проблема следующая

В случае работы над большим (3Гб например) проектом, нетбинс при запуске сканирует его, сам при это адски тупит, и в итоге вообще вешает самбу так, что та не показывает содержимое папок и не дает открыть файлы. Трафик постоянный и бесконечный..

Программирование превратилось в АД. При нажатии Ctrl, Нетбинс начинает (превентивно, у себя пока в голове видимо) искать то, что под курсором, интерфейс замирает на время от 0.1 до 10 сек, и это при том, что я нажимал Ctrl не для того, чтоб перейти к определению функции или посмотреть phpdoc, я просто хотел перейти к началу строки Ctrl+Home!!

Я готов был выкинуть комп с 9 этажа и крыл матом всех, кто вспоминался: разрабов нетбинса, яву, того кто придумал яву, винду, билла гейста, ЖКХ, путина.. В итоге решил выделить час времени и попробовать докопаться до проблемы.




Для начала, конечно же, как и все нормальные IT-шники, смотрим в логи.
Поставил samba log_level = 2, при этом получил такой поток сообщений, что max file size (1Мб) достигался раз в 10 сек
сообщения типа таких


[2013/04/05 17:21:28.244789,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>/bdb871b718a27ed82b3b8cfe5fb62d04.jpg read=Yes write=No (numopen=1007)
[2013/04/05 17:21:28.249682,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>/39af2dfce34d56986faa8382eca9c05e.jpg read=Yes write=No (numopen=1008)
[2013/04/05 17:21:28.254530,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>/fe1efa1f71f09f0b20eca3317e3961bc.jpg read=Yes write=No (numopen=1009)
[2013/04/05 17:21:28.259344,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>/e44f5b06b6adf1d3e3629ab90b530f95.jpg read=Yes write=No (numopen=1010)
[2013/04/05 17:21:28.264198,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>/c5b4ebc85744e8925116300f264c4329.jpg read=Yes write=No (numopen=1011)
[2013/04/05 17:21:28.269243,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>/da1ab00d6ccd5efe94516bee502601aa.jpg read=Yes write=No (numopen=1012)
[2013/04/05 17:21:28.274216,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>/adcee9eca32f6415cf48a6d34e7821ed.jpg read=Yes write=No (numopen=1013)
[2013/04/05 17:21:28.279123,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>/57457336b61272749970c76e742843f0.jpg read=Yes write=No (numopen=1014)
[2013/04/05 17:21:28.284011,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>/90bf9511630b5d2ab8d4c3db8f5a8d4b.jpg read=Yes write=No (numopen=1015)
[2013/04/05 17:21:28.291022,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>/8aa1d7fb0a80a78dfa8fbef824bb5e66.jpg read=Yes write=No (numopen=1016)
я заметил, что numopen возрастает и достигает границы примерно в 1024, тогда лог затихает. Потом отпускается несколько файлов 
[2013/04/05 17:21:48.988849,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>/214a69e0f5594d165ae59f48580e8d89.jpg (numopen=1016) NT_STATUS_OK
[2013/04/05 17:21:48.989828,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>/0ec7d3788a150a97e694a4c0b8d52647.jpg (numopen=1015) NT_STATUS_OK
[2013/04/05 17:21:48.990766,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>/bf021de1741b43b7957dff5e83ef7f44.jpg (numopen=1014) NT_STATUS_OK
[2013/04/05 17:21:48.991606,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>/5518b09d7991e8e5a5b68caf7159903e.jpg (numopen=1013) NT_STATUS_OK
[2013/04/05 17:21:48.992280,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>/5896ed0367298ef5764e099d5df136c5.jpg (numopen=1012) NT_STATUS_OK
[2013/04/05 17:21:48.992928,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>/79c38f3cac615c8977cfec1c10bbc93f.jpg (numopen=1011) NT_STATUS_OK
[2013/04/05 17:21:48.993915,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>/bcb677dbb78478d1caec6ff2fb8e9f9d.jpg (numopen=1010) NT_STATUS_OK
[2013/04/05 17:21:48.994563,  2] smbd/close.c:656(close_normal_file)
..и открываются новые.
Нахера нетбинс открывает столько файлов одновременно, подумалось мне..
Я открыл параллельно самба ресурс с фильмами, для теста, обновлял папку с фильмами и с проектами, фильмы не отваливались. В итоге наблюдений я пришел к выводу, что от самбы отваливается примонтированная с соседней виртуалки шара с проектами, целиком..

Решил для начала размонтировать ее. К слову монтирована она была через sshfs (fstab: sshfs#user@<ip>:/home/devel  /home/devel     fuse    allow_other     0       0).
Закрыл все коннекты, размонтировал и подумал, попробую по nfs:
fstab: <ip>:/home/devel  /home/devel     nfs4    rw,soft 0       0
Примонтировал, запускаю, жду.. и о счастье! По nfs4 все стало ок


[2013/04/05 17:55:52.787312,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>images/arrow_olive_darkhi.gif read=Yes write=No (numopen=4)
[2013/04/05 17:55:52.790655,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>images/arrow_olive_darkhi.gif (numopen=3) NT_STATUS_OK
[2013/04/05 17:55:52.793411,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>images/tbw_tr_bgne.gif read=Yes write=No (numopen=4)
[2013/04/05 17:55:52.797058,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>images/tbw_tr_bgne.gif (numopen=3) NT_STATUS_OK
[2013/04/05 17:55:52.799855,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>images/auth_topy3.png read=Yes write=No (numopen=4)
[2013/04/05 17:55:52.803466,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>images/auth_topy3.png (numopen=3) NT_STATUS_OK
[2013/04/05 17:55:52.806172,  2] smbd/open.c:633(open_file)
  mechanic opened file <project_path>images/cart_big8e.gif read=Yes write=No (numopen=4)
[2013/04/05 17:55:52.811603,  2] smbd/close.c:656(close_normal_file)
  mechanic closed file <project_path>images/cart_big8e.gif (numopen=3) NT_STATUS_OK
Ctrl+клик на имя функции отрабатывает мгновенно, все летает,  даже окончания сканирования проекта удалось дождаться. Путин прощен (ЖКХ нет). Дальше копать не стал, можно работать, ибо:

SOLVED

upd: винда теперь не может закинуть файлик drah-n-drop-ом, пишет
"Процесс не может получить доступ к файлу, так как часть этого файла заблокирована другим процессом"

пишем в /etc/samba/smb.cfg
[global]

        strict locking = no

затем "/etc/init.d/samba restart" и ошибки больше нет!

SOLVED TWICE

Комментариев нет:

Отправить комментарий