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

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

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

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

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

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

nice (linux/freebsd/solaris)

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

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

Категорії
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(); }'

Категорії
Solaris

Альтернатива history

В Solaris очень много разных инструментов, которые предназначены на все случаи жизни. Вот ещё один – lastcomm, команда которая хранит историю всех команд всех пользователей. По умолчанию логгирование отключено. При первом запуске получим:

#lastcomm
/var/adm/pacct: No such file or directory

Что бы включить логгирование команд, выполним

#/usr/lib/acct/turnacct on

После этого введём пару команд и посмотрим lastcomm

$ lastcomm
man skeletor pts/3 0.00 secs Tue May 8 20:19
less skeletor pts/3 0.00 secs Tue May 8 20:19
sendmail SF root __ 0.00 secs Tue May 8 20:21
sendmail F smmsp __ 0.00 secs Tue May 8 20:19
mv skeletor pts/3 0.00 secs Tue May 8 20:19

Категорії
Solaris

net0 has duplicate address; disabled

Наткнулся на очень странное поведение коллизии в сети. Если Solaris обнаруживает, что кто-то другой использует его же IP адрес – он просто отключает интерфейс. То ли баг, то ли фича – неясно. Поднять сетевой интерфейс можно так:

Solaris 10

#ifconfig net0 up

Solaris 11

#ipadm up-addr net0/v4

или так:

#ipadm refresh-addr net0/v4

Категорії
Solaris

Рост CPU usage на Solaris 11

При продолжительных нагрузках может наблюдаться симптом роста потребления ядром процессорной мощности. Как оказалось это баг, который обсуждали здесь и он решается отключением “засыпания”:

– налету меняется так:

#echo apic_timer_preferred_mode = 0x0 | mdb -kw

– для постояннки добавим в /etc/system

set apix:apic_timer_preferred_mode = 0x0

– для просмотра текущего состояния:

# echo apic_timer::print apic_timer_t | mdb -k
{
mode = 0
apic_timer_enable_ops = oneshot_timer_enable
apic_timer_disable_ops = oneshot_timer_disable
apic_timer_reprogram_ops = oneshot_timer_reprogram
}
# echo apic_timer_preferred_mode::print apic_timer_t |mdb -k
{
mode = 0
apic_timer_enable_ops = 0xffffc100
apic_timer_disable_ops = 0x1e12ee4000000000
apic_timer_reprogram_ops = 0xffffc100
}

Категорії
Solaris

Разбираемся с core/crash-файлами

При падении приложения оно создаёт core-файл, который можно проанализировать. За создание core файлов отвечает утилита coreadm. С её помощью можно указать, где будут лежать core-файлы, для каких типов создавать core-файлы и т.д.

Важно понимать, что core dump файлы системы и процессов отличаются, и их нужно анализировать по разному.

Категорії
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

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

Смотрим сетевой трафик в Realtime

Linux

$watch /sbin/ifconfig -s eth0

FreeBSD/OpenBSD

$netstat -w 1 -I em0

Solaris

$netstat -I net0 1
$dlstat -i 1 net0
#dladm show-link -s -i 1 net0

Здесь (http://www.brendangregg.com/Perf/network.html) неплохой подбор по утилитам замера трафика для Solaris

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