Рубрика: *BSD

Диагностика дисковой подсистемы Linux FreeBSD

Здравствуйте дорогие читатели.

Сегодня речь пойдет об диагностике дисковой подсистемы на таких ос как Linux и FreeBSD

так как на всех Linux подобных системах диагностика происходит одинаково она подойдет для всех 😉

и так для начало нужно понять если у вас есть рейд контроллер это 1 ситуация, если же

у вас нету рейд контроллера то это другая ситуация.

Обьем оперативной памяти как самого рейд контроллера так и сервера играет роль.

правильная настройка демонов которые используют диски так же важна как и остальные факторы.

Суть правильной настройки демонов состоит в включении или отключении aio оно не всегда хорошо так как обращается к диску напрямую минуя кеш самой ОС что есть не всегда правильно и это не всегда приносит хорошие плоды в виде производительности.

Что же нам может дать aio ? например когда у вас 4 SAS диска и RAID10 нагрузка в виде запросов кушает всю оперативную память под кеш можно отключить кушанье оперативной памяти включив aio в итоге памяти будет использоватся на порядки меньше но вся нагрузка упадет напрямую на диски в итоге получим большую нагрузку на сами HDD что в некоторых ситуациях может привести к линейному росту нагрузки,тормозам сервера и тому подобное особенно это фигово когда у вас не включен кеш на запись\чтение на рейд контроллере таких ситуаций было очень много, а проблема в том что народ просто делает copy-paste не задумываясь о том что может быть иначе и что это не всегда правильно.

И так мы отклонились от темы 😉

Утилиты :

atop утилита как и top но с выводом IO и скорости чтения\записи на диски или дисковые массивы работает как на Linux так и на FreeBSD позволяет увидеть какая нагрузка на HDD сейчас в данный момент.

В Linux в статистике использования процессора смотрите значение iowait.

Так же дадут понять что происходит утилиты vmstat, iostat и iotop,lsof.

 

 

Netflow freebsd клиент + сервер

Здравствуйте дорогие товарищи !

Хочу затронуть столь интересную тему как сбор статистики netflow на сервере freebsd
тут нам на помощь приходит netgraph и модули ng_netflow ng_tee ng_ether ng_ksocket
они должны быть загружены для правильной работы
итак настройка клиента :

kldload ng_ether
kldload ng_tee
kldload ng_netflow
kldload ng_ksocket

ngctl mkpeer em2: tee lower right
ngctl connect em2: em2:lower upper left
ngctl mkpeer em2:lower netflow right2left iface0
ngctl name em2:lower.right2left netflow
ngctl msg netflow: setifindex { iface=0 index=1 }
ngctl mkpeer netflow: ksocket export inet/dgram/udp
ngctl msg netflow:export connect inet/192.168.1.1:5559
Наш клиент готов к работе
192.168.1.1:5559 ип и порт коллектора ( сервера ) сбора статистики.

Это все можно впихнуть в какой то скрипт
поместить в папку /usr/local/etc/rc.d/ для автозапуска.

Проверяем все ли хорошо :
flowctl netflow show

если видим пустоту где то что то прохлопали

если видим ип адреса src dst и порты то всё ок !

Теперь настройка сервера коллектора :

flow-capture -w /mon/flows/ 192.168.1.1/192.168.1.2/5559

Где 192.168.1.1 ип коллектора
Где 192.168.1.2 ип клиента

Все 😉
на счёт сервера скажу больше можно все сделать через rc.conf 😉 так и сделайте в качестве домашнего задания 😉

Всегда ваш Taras Kramarets aka ~NiX~

ffmpeg захват видео с дешовой китайской камеры за 18 usd поток rtsp

Здравствуйте товарищи !
Сегодня речь пойдет о захвате видео с дешевой китайской камеры от NETSurveillance, захотелось мне писать видео с этой камеры при помощи ffmpeg так как данная камера поддерживает отдачу потока в rtsp то проблем нету )
Конечно если есть свободное место на диске 😉 но тут же опять нюансы поток нужно делить на части для этого как нельзя лучше подойдет функция segment и так ближе к делу команда будет выглядеть вот так для FreeBSD для других ОС такая же кроме nohup :
nohup ffmpeg -rtsp_transport tcp -fflags igndts -i «rtsp://1.1.1.1/user=admin&password=MegaPasSwD0&channel=1&stream=live9.sdp» -c copy -acodec aac -strict experimental -ab 128k -map 0:0 -f segment -segment_time 600 /videos/%04d.mp4 > /dev/null &

теперь немножко поясню зачем нужен nohup что бы процесс работал в фоне, в строке получение потока у меня есть stream=live9.sdp оно дает отличное качество картинки, а чем меньше цифра в livex.sdp то тем хуже качество.
дальше segment указывает что сохранять видео будем сегментами, а -segment_time 600 указывает что сегмент имеет ограничение по времени 600 секунд = 10 минут ну, а дальше я думаю все и без того понятно.
Запомните главное камера должна поддерживать такой режим работы, и кроме этого да бы все было без проблем у сервера должен быть доступ к камере это либо проброс порта либо прямой ип сюда же разрешения в фаерволах и так далеё.
Вообщем на этом все всегда ваш боевой товарищ Тарас Крамарец aka ~NiX~

mpls freebsd собраная информация ng-mpls часть 1

Доброго времени суток !

Сегодня я хочу с вами поделится тем что нашел в просторах всемирной паутины, так как информации много, но в большинстве случаев это просто вопросы возможно ли такое, или оно работает и почему замер проект freebsd.mpls.in и ещё много других дискуссий  😉

скажу такую вещь что нашел рабочий ldpd для FreeBSD и кусок модуля mpls-ng сейчас я с ними разбираюсь и тестирую о чем будет речь позже в другой статье 😉 тут только скажу где нашел и как это вместе слепить …

Внимание все это не есть продакшн версия по словам разработчика потому радоватся пока рано )

Тут качаем сам ng-mpls

https://github.com/antonrogov/ng_mpls/archive/master.zip

он нужен для компиляции ldpd без которого ничего не будет …

теперь качаем сам ldpd

https://github.com/antonrogov/freebsd-ldpd/archive/master.zip

теперь нужно их распаковать но в следующем порядке ng_mpls должен лежать выше директории с freebsd-ldpd если все так тогда заходим в каталог и даем команду  make all жмем enter получаем ldpd бинарник на выходе запускаемо его 😉

и смотрим sockstat -rn | grep ldpd видим что слушает порт 646 то есть все окей дальше опишу как это использовать так как программист данного дива так и не выложил скриптов для запуска mpls хотя бы в тестовом режиме.

Ждите Часть 2 😉

Всегда ваш Taras Kramarets aka ~NiX~

как cmake указать другую версию gcc freebsd

Здравствуйте уважаемые читатели !

Сегодня речь пойдет о такой возможности как изменение версии gcc в рамках 1й компиляции например скажем у вас установлено gcc 4.2.1 так же gcc 4.8 так же gcc49

Для того что бы указать cmake чем пользоватся есть такие ключи кто не знал 😉

Например я хочу скомилировать проект с помощью gcc49 который есть в текущей директории мне нужно сделать так:

cmake -DCMAKE_CXX_COMPILER=/usr/local/bin/g++49 -DCMAKE_CC_COMPILER=/usr/local/bin/gcc49 -DCMAKE_C_COMPILER=/usr/local/bin/gcc49 .

 

Точка в конце обязательна указывает где мы будем компилировать 😉

Вообщем дерзайте )

Всегда ваш Taras.Kramarets aka ~NiX~