Если появилась задача измерять скорость работы между 2-мя хостами, то лучшего инструмента, чем iperf/ttcp не найти.
Оба этих инструмента нужно запускать с обеих концов проверяемой трассы.
Если появилась задача измерять скорость работы между 2-мя хостами, то лучшего инструмента, чем iperf/ttcp не найти.
Оба этих инструмента нужно запускать с обеих концов проверяемой трассы.
Утилита nice запускает программу, заданную аргументом программа, с
изменённым приоритетом планирования, увеличивая eё значение “nice” на
указанное приращение. Если приращение не указано явно, оно полагается
равным 10. Чем меньше значение nice у процесса, тем более высокий прио-
ритет он имеет.
Суперпользователь может также указать отрицательное приращение, чтобы
запустить программу с более высоким приоритетом.
Есть замечательная статья http://habrahabr.ru/post/92701/ и в ней описаны моменты, о которых многие наверное и не слышали. Это касается контроля ошибок чтения/записи. Не буду пересказывать статью, а лишь добавлю от себя некоторые моменты:
– SCT параметры можно выставить не на всех диска, даже если они “крутые” или Raid edition и даже если smart сказал вам, что поддерживается.
– Всегда выставляйте таймаут (если диск позволяет) чтения/записи (лучше пускай диск выпадет из raid’a, чем подвиснет сервер). Особенно это касается zfs
– Если smartctl ругается INVALID ARGUMENT TO -l то просто обновите версию smartctl хотя бы до 5.40
Я был свидетелем того, как из-за не установленных таймаутов, подвисали процессы, которые не убивались через kill -9.
Данные примеры работают не только на 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 очень много разных инструментов, которые предназначены на все случаи жизни. Вот ещё один – 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 обнаруживает, что кто-то другой использует его же IP адрес – он просто отключает интерфейс. То ли баг, то ли фича – неясно. Поднять сетевой интерфейс можно так:
#ifconfig net0 up
#ipadm up-addr net0/v4
или так:
#ipadm refresh-addr net0/v4
При продолжительных нагрузках может наблюдаться симптом роста потребления ядром процессорной мощности. Как оказалось это баг, который обсуждали здесь и он решается отключением “засыпания”:
– налету меняется так:
#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
}
При падении приложения оно создаёт core-файл, который можно проанализировать. За создание core файлов отвечает утилита coreadm. С её помощью можно указать, где будут лежать core-файлы, для каких типов создавать core-файлы и т.д.
Важно понимать, что core dump файлы системы и процессов отличаются, и их нужно анализировать по разному.
strace/SystemTap/ftrace/ktap/pspy
truss/ktrace/dtrace
ktrace/kdump
truss/dtrace
==================================
Misc
https://klarasystems.com/articles/freebsd-vs-linux-tracing-and-troubleshooting
$watch /sbin/ifconfig -s eth0
$netstat -w 1 -I em0
$netstat -I net0 1
$dlstat -i 1 net0
#dladm show-link -s -i 1 net0
Здесь (http://www.brendangregg.com/Perf/network.html) неплохой подбор по утилитам замера трафика для Solaris