Категорії
FreeBSD

Поддержка dtrace в приложениях

Здесь буду добавлять описание наиболее часто используемого ПО, в которое можно добавить поддержку Dtrace.

Тестовый стенд: FreeBSD 9.0 Release amd64, ядро собрано с поддержкой Dtrace

Категорії
FreeBSD Misc, staff, other

TIMEOUT – READ_DMA retrying

Как пишут в сети, избавиться от этой ошибки помогает принудительное отключение DMA:

echo 'hw.ata.ata_dma="0"' >> /boot/loader.conf

то есть перевод в режим PIO (установить 1 для обеспечения доступа DMA, 0 – для PIO; по умолчанию, DMA).

Категорії
FreeBSD Linux OpenBSD Security Solaris

chattr, chflags и неудаляемые файлы

Как защитить файл от удаления из-под root’a? Ведь root может удалить любой файл? Или не любой? Оказывается, и здесь есть небольшая защита от дурака.

Создатели файловых систем позаботились о том, что бы добавить возможность выставить дополнительные флаги на файлы или папки, которые бы ввели дополнительную защиту:

– нельзя удалить файл (неважно под каким пользователем это делать)
– можно только дописывать/добавлять, но не изменять или удалять

а так же много других возможностей. Напомню, что это свойство файловой системы, а не ОС, поэтому, не для всех ОС эти свойства применимы

Категорії
FreeBSD

Рекомендации по настройке нового сервера FreeBSD

Данная статья поможет вам не забыть настроить основные моменты при поднятии нового сервера с нуля. Будут использоваться общие принципы при настройке сервера, не зависимо от назначения (а если есть специфические моменты – они будут оговорены отдельно)

Кстати, статья будет дополнятся, обновляться.

Категорії
FreeBSD Linux OpenBSD Solaris

Измеряем скорость соединения

Если появилась задача измерять скорость работы между 2-мя хостами, то лучшего инструмента, чем iperf/ttcp не найти.

Оба этих инструмента нужно запускать с обеих концов проверяемой трассы.

Категорії
FreeBSD Linux Solaris

Контролируем процессы

nice (linux/freebsd/solaris)

Утилита nice запускает программу, заданную аргументом программа, с
изменённым приоритетом планирования, увеличивая eё значение “nice” на
указанное приращение. Если приращение не указано явно, оно полагается
равным 10. Чем меньше значение nice у процесса, тем более высокий прио-
ритет он имеет.

Суперпользователь может также указать отрицательное приращение, чтобы
запустить программу с более высоким приоритетом.

Категорії
FreeBSD

sockstat и знаки вопроса ?????

Для тех, кто имеет 8.3 (а возможно и 9-ку тоже) посвящается.

Если при запуске sockstat вы увидите похожу картину

root syslogd 1028 9 udp4 *:514 *:*
root devd 783 4 stream /var/run/devd.pipe
? ? ? ? tcp4 193.28.177.4:53452 193.28.177.2:3306
? ? ? ? tcp4 193.28.177.4:53959 193.28.177.2:3306

Не волнуйтесь, всё нормально. Просто теперь расширили функционал sockstat, который показывает соединения, которые не принадлежат никаким файловым декстрипторам. Раньше именно это и отличало sockstat от netstat (он их показывал).

Категорії
FreeBSD Linux OpenBSD Solaris Windows

Контроль ошибок жёстких дисков и подвисания системы.

Есть замечательная статья http://habrahabr.ru/post/92701/ и в ней описаны моменты, о которых многие наверное и не слышали. Это касается контроля ошибок чтения/записи. Не буду пересказывать статью, а лишь добавлю от себя некоторые моменты:

SCT параметры можно выставить не на всех диска, даже если они “крутые” или Raid edition и даже если smart сказал вам, что поддерживается.
– Всегда выставляйте таймаут (если диск позволяет) чтения/записи (лучше пускай диск выпадет из raid’a, чем подвиснет сервер). Особенно это касается zfs
– Если smartctl ругается INVALID ARGUMENT TO -l то просто обновите версию smartctl хотя бы до 5.40

Я был свидетелем того, как из-за не установленных таймаутов, подвисали процессы, которые не убивались через kill -9.

Категорії
FreeBSD Solaris

Dtrace: некоторые примеры применения

Данные примеры работают не только на Solaris, но и на FreeBSD

Загрузка ЦПУ приложениями (можно использовать оба варианта)

dtrace -n 'syscall:::entry { @num[execname] = count(); }'
dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }'

Статистика системных вызовов (syscalls)

dtrace -n 'syscall:::entry { @num[probefunc] = count(); }'

Категорії
FreeBSD Linux OpenBSD Solaris

Трассировка приложений

Linux

strace/SystemTap/ftrace/ktap/pspy

FreeBSD

truss/ktrace/dtrace

OpenBSD

ktrace/kdump

Solaris

truss/dtrace

==================================

Misc


https://klarasystems.com/articles/freebsd-vs-linux-tracing-and-troubleshooting

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff