Freebsd как узнать процессор
В интернете можно найти все, ну почти все. Проблема в том — что просто не знаешь чего искать то.
Так и с этой темой.
Как то обратил внимание сколько потребляется кВт/ч в месяц, сумма не очень понравилась, и решил с этим хоть как-то бороться. Жесткие диски работают постоянно, Westeng Digital серия Green, как заявлено производителем — с пониженным энергопотреблением. В общем — за счет них не особо сэкономишь. Видео-карта . тоже нет механизмов регулирования. Сетевая — такая же беда. И вот добираемся до процессора. Как известно, все достаточно современные процессоры позволяют регулировать свою частоту, как следствие при понижении частоты — энергопотребление уменьшается, при увеличении — соответственно увеличивается.
В ОС FreeBSD существует драйвер, для управления частотой процессора — это cpufreq.
Бегло окидываем взглядом man по нему и получаем след. средства управления этим драйвером через sysctl:
Ага, что же мы получили:
— dev.cpu.%d.freq — текущая частота процессора;
— dev.cpu.%d.freq_levels — доступные настройки для драйвера (частота/мощность). Частота в МГЦ, мощность в мВт;
— dev.DEVICE.%d.freq_settings, debug.cpufreq.lowest, debug.cpufreq.verbose — отладочные параметры, про них позже.
Если верить описанию — на процессору можно установить любую частоту из списка dev.cpu.%d.freq_levels. Частота устанавливается через системную переменную dev.cpu.%d.freq, так же она отображает текущую частоту процессора.
Ну что ж, это функционал устраивает, приступаем к настройке.
Установка драйвера
Здесь все элементарно, устанавливаем модуль ядра и подгружаем его:
Загружаем модуль и проверяем настройки драйвера:
Диапазон частот от 1867МГц до 200МГц, при этом потребляемая мощность может меняться от 22,464Вт до 2,808Вт. При максимальной частоте в 1867 МГц потребляемая мощность составит 22,464Вт, а при минимальной частоте 200МГц всего 2,808Вт — что почти в 10 раз меньше.
Разрешаем драйверу загружаться вместе с системой, для этого в файл /boot/loader.conf добавляем следующею строку:
Пробуем драйвер
Драйвер загружен в память, список частот есть — теперь самое время его опробовать. Поменяем частоту процессора с максимальной до минимальной и обратно:
Вроде работает, можно двигаться дальше.
Управляем частотой процессора в зависимости от нагрузки
Первая мысль, которая пришла в голову — это написать свой скрипт, который в течении промежутка времени будет собирать статистику по загрузке процессора, и если загрузки нет — то просто понижать частоту до следующей ступени. А если загрузка есть, и активная — то наоборот, повышать до следующей ступени.
Но после детального прочтения документации по cpufreq вышел на службу powerd, которая занимается именно этим. Итак, какие параметры есть у этой службы:
Как следует из описания — поддерживается 4 режима работы:
— max (maximum) — выбираются максимальные настройки производительности (установит макс. частоту процессора);
— min (minimum) — выбираются минимальные настройки производительности (установит минимальную частоту процессора);
— adp(adaptive) — адаптивный, понижает частоту при простое, и увеличивает при появлении нагрузки;
— hadp (hiadaptive) — аналогичен адаптивному режиму, но упор делается на производительность, в ущерб энергопотреблению. Частоту процессора увеличивает быстрее чем понижает.
Первые два режима нам не интересны, ибо max — это и без драйвера включен, min — все время держать минимальную частоту совсем не интересно.
Остается два режима, adp и hadp. Вот их и посмотрим, для это запускаем powerd по очереди в каждом режиме:
Как и следовало из описания — hadp стремиться занять максимальную частоту, но при простое уменьшает. adp — симметричный баланс, растет также как и падает. Что из этого следует? А следует вот что: в режиме hadp — процессор максимально быстро выйдет на рабочую частоту, т.е. фактические одиночный всплеск нагрузки заставит ворочаться процессор на максимальной частоте, в то время как частота процессора при простое будет понижаться не так оперативно. В режиме adp — будет симметричное понижение/повышение частоты процессора — т.е. он одинаково медленно будет опускать частоту и поднимать частоту.
Выбор режима должен каждый выбирать для себя, это дело вкуса. Хотите чтобы процессор выходил на максимальную частоту предельно быстро — то это hadp, но потребление будет выше. Если не обломаться, и подождать несколько секунд до выхода на максимальную частоту — то это режим adp.
Лично для моих нужд adp хватает за глаза.
Добавочно можно регулировать переключение частот параметрами -r и -i:
-r — указывает порог нагрузки, при котором следует повышать частоту. По умолчанию — 75% и больше. Т.е. при нагрузке в 75% и выше частота процессора будет повышаться;
-i — указывает порог нагрузки, при котором следует понижать частоту. По умолчанию — 50% и меньше. Т.е. при нагрузке 50% и ниже — частота процессора будет понижаться.
Под мои нужды, как я и указывал выше — реактивной реакции не надо, могу и подождать некоторое время. Для этого указываю — что увеличивать частоту при нагрузке в 90% и выше.
Проверяем:
Вполне приемлемый результат. Что показывают эти цифры: после выхода процессора на минимальную частоту в 200МГц была дана нагрузка в течении секунды, что видно в плавном повышении до 1400МГц, а после исчезновения нагрузки — плавное понижение. Каждая строчка — это период в 250мс, который, кстати, тоже можно менять с помощью параметра -p. Попробуем уменьшить период до 100мс:
Видно, что тестовой нагрузки в одну секунду хватило чтоб вывести процессор на максимальную частоту, причем довольно быстро — за 700мс (количество строк после 200МГц * 100мс). В то время как при интервале в 250мс потребовалась 9 строк и выход был на частоту в 1400МГц.
Пожалуй, эти настройки и оставлю. Но, эти параметры должен каждый подбирать под свои задачи!
Добавляем в /etc/rc.conf запуск powerd и параметры для запуска:
Ну и запускаем его:
Все! Об эффективности этого метода можно будет теперь по следующему счету за электричество.
В данной статье пойдет речь о способах сбора сведений об оборудовании компьютера, который находится под управлением операционных систем семейства UNIX, такие как Linux и BSD. Также, будет немного затронута часть получения системной информации. Действия будут выполняться из командной строки без графической оболочки — их можно выполнить, подключившись к компьютеру удаленно по SSH.
Информация об оперативной памяти
2. sysctl -a (FreeBSD)
Команда отображает множество данных, поэтому добавляем фильтр:
sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
hw.model: Intel(R) Xeon(R) CPU X5690 @ 3.47GHz
hw.machine: amd64
hw.ncpu: 2
* на самом деле, команда sysctl работает и в Linux, но формат вывода менее удобен, по сравнению с вышерассмотренной lscpu.
1. lscpu (Linux)
Команда показывает информацию о характеристиках процессора в удобном виде:
* больше всего нас интересует:
- Architecture — архитектура процессора — 32 бит или 64.
- Core(s) per socket — количество ядер на процессор.
- Socket(s) — количество физических/виртуальных процессоров.
- CPU(s) — суммарное количество процессорных ядер.
- Model name — модель процессора.
Информация о процессоре и памяти
systat -vmstat n – вывод показателей загрузки (number of jobs in the run queue averaged over 1, 5 and 15 min), состояния памяти (в страницах), количества процессов в группах, количество вызовов специальных функций ядра (traps, interrupts, system calls, network software interrupts), использование процессора, трансляции имен, активность свопа, прерывания, а также информацию по использованию диска;
top – аналогичная информация в сокращенном виде + использование памяти и свопа в мегабайтах, список процессов, отсортированных по использованию процессора;
ps afx – список запущенных процессов и время процессора на каждый.
1. Файл /proc/meminfo (Linux)
MemTotal: 8010284 kB
MemFree: 1058580 kB
MemAvailable: 2791616 kB
Buffers: 1884 kB
Cached: 1754092 kB
SwapCached: 122280 kB
Active: 4330296 kB
Inactive: 2006792 kB
Active(anon): 3623768 kB
Inactive(anon): 983120 kB
Active(file): 706528 kB
Inactive(file): 1023672 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 1048572 kB
SwapFree: 597684 kB
Dirty: 20 kB
Writeback: 0 kB
AnonPages: 4466532 kB
Mapped: 92808 kB
Shmem: 25776 kB
Slab: 408732 kB
SReclaimable: 308820 kB
SUnreclaim: 99912 kB
KernelStack: 7312 kB
PageTables: 23276 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 5053712 kB
Committed_AS: 3770324 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 159328 kB
VmallocChunk: 34359341052 kB
HardwareCorrupted: 0 kB
AnonHugePages: 3248128 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 257984 kB
DirectMap2M: 8130560 kB
* чаще всего, самое важное:
- MemTotal — общий объем оперативной памяти.
- MemFree — объем памяти, который не используется системой.
- Buffers — память, которая в данным момент ожидает записи на диск.
- Cached — объем, задействованный под кэш чтения с диска.
- MemAvailable — объем памяти, доступной в распределители без необходимости обмена.
- SwapTotal — объем файла подкачки.
- SwapFree — свободный объем файла подкачки.
* Объем используемой памяти = MemTotal – MemFree - Cached - Buffers.
Для перевода килобайт в гигабайты можно воспользоваться онлайн калькулятором.
3. Файл /proc/cpuinfo (Linux)
Позволяет увидеть подробную информацию по каждому ядру:
Команда для подсчета количества ядер:
cat /proc/cpuinfo | grep processor | wc -l
4. Температура процессора
Linux
Сначала необходимо установить утилиту.
yum install lm_sensors
apt-get install lm-sensors
После установки утилиты выполняем:
FreeBSD
Загружаем необходимый модуль:
* для автоматической его загрузки добавляем в файл /boot/loader.conf строку coretemp_load="YES"
sysctl -a | grep temperature
Информация о сети
ifconfig – список сетевых интерфейсов с IP-адресами, масками, MAC-адресами, типами карт и их статусами (названия карточек можно посмотреть в файле конфигурации ядра);
systat -ifstat n – объем трафика за n секунд на всех сетевых интерфейсах;
netstat – вывод активных сетевых соединений (сокетов);
systat -netstat n – аналог netstat в реальном времени;
systat -ip n – таблица IP-пакетов и ошибок по типам за n секунд;
systat -tcp n – таблица TCP-пакетов и ошибок по типам за n секунд;
systat -icmp n – таблица ICMP-пакетов и ошибок по типам за n секунд;
netstat -ibt – список интерфейсов, разбитых по IP-адресам (!) с объемом трафика на каждом, количеством ошибок, коллизий, значением watchdog -таймера (netstat: illegal option — t);
netstat -r – таблица маршрутизации;
arp -an – таблица ARP;
tcpdump -i rl0 host 192.168.61.20 and port 80 – сниффер пакетов на интерфейсе rl0 , фильтрующий пакеты, содержащие адрес 192.168.61.20 и порт 80;
trafshow -i rl0 – программа для сортировки и вывода сетевых потоков (устанавливается дополнительно пакетом или из портов).
2. free (Linux)
Данная команда позволяет получить информацию об использовании памяти в удобной таблице. Для еще большего удобства, мы выведем ее с помощью дополнительного параметра -h:
total used free shared buff/cache available
Mem: 3,7G 568M 378M 193M 2,8G 2,6G
Swap: 4,0G 94M 3,9G
Операционная система FreeBSD является довольно специфичной, и используется в подавляющем большинстве для каких-либо высоконагруженных систем, для выполнения ресурсоемких операций. Используется операционная система чаще на различных серверах, нежели как система для комфортного времяпровождения за чашечкой кофе у компьютера, дань тому истории самой системы. Выделяющиеся особенность в том, что при минимальных объемах ресурсов по соотношению с другими системами, FreeBSD сможет функционировать, и выполнять задачи, под которые система была сконфигурирована, тем самым достигается более рациональное использование аппаратных ресурсов. Обратная сторона минимальных требований к ресурсам это требование к навыкам, которыми должен владеть администратор системы.
В данном посту я решил сделать хорошую шпаргалку по командам FreeBSD, которые могут пригодиться на практике. Здесь приведена выжимка команд для работы с файловой системой, процессами, пользователями, и т.д.
cp — Сокращение от copy, команда выполняет копирование файлов.
Рассмотрим пример использования этой команды. Скопируем файл /home/file1 в директорию /home/dir/:
df — Команда для просмотра свободного места на диске.
ls — Команда для просмотра содержимое каталога.
Рассмотрим подробно содержимое каталога:
cd – Команда для перехода по каталогам.
Пример, выполним переход в директорию /home:
find — Команда для поиска директорий и файлов.
Рассмотрим простой пример, найдем файлы в директории /home/, начинающиеся с приставки conf:
Поиск файлов и директорий созданные за последний день в текущей директории.
Поиск файлов и директорий чтение которых производилось за последний день в текущей директории.
Поиск файлов и директорий модифицированных за последний день в текущей директории.
Поиск файлов и директорий созданных либо копированных за последний день в текущей директории.
Поиск и удаление файлов и папок в текущей директории.
tar — Команда для работы с tar архивами. Подробнее о работе с tar архивами.
mkdir dir_name — Команда для создания директории.
pwd — Команда отображает текущую директорию в которой вы находитесь.
mv — Сокращение от move, команда служит для перемещения, либо переименования файла.
Пример использования команды mv:
rm — Сокращение от remove, команда служит для удаления файлов.
Пример удаления файла:
rmdir — Сокращенно от remove dir, команда выполняет удаление директории.
Рассмотрим пример удаления директории с именем mydir:
uname — Команда для вывода информации о системе.
ps — Команда выводит на экран список активных процессов.
top — Команда для просмотра выполняемых процессов в режиме реального времени.
kill pid — Команда принудительно завершает процесс. В качестве параметра PID указывается id процесса.
killall processname — Команда принудительно завершает процесс. В качестве параметра processname указывается имя процесса.
history 20 — Команда отображает список последних команд. Число 20 означает количество последних комманд.
id — Команда для отображения текущего uid gid группы.
who — Команда для вывода списка пользователей в системе.
whoami — Команда для просмотра имени текущего пользователя.
su — Команда дает права суперпользователя root. При этом пользователь должен быть в группе wheel.
su username — Переключение окружения с правами другого пользователя.
cat /etc/passwd — Просмотр всех аккаунтов в системе.
cat /etc/group — Просмотр всех групп в системе.
cat /etc/master.passwd — Команда для просмотра всех учетных записей с зашифрованными паролями.
passwd — Команда для смены пароля. Актуальна для пользователей root.
passwd username — Команда для смены пароля указанного пользователя.
pw usermod username -G wheel — Команда для добавления пользователя в группу wheel.
pw userdel username -r — Команда для удаления пользователя. Параметр -r говорит о том, что будет удалена домашняя директория.
mount — Команда для просмотра смонтированных файловых систем. См. пример: монтирование USB-устройств во FreeBSD.
pkg_info — Команда для просмотра информации обо всех установленных пакетах.
Просмотр детальной информации о пакете pack-1.0.0
Просмотр детальной информации о всех пакетах pack.
Просмотр список файлов включенных в пакет.
Команда для определения в каком из пакетов включен файл /usr/local/bin/file.
pkg_add pack-1.2.3.tbz — Команда для установки пакета из файла.
pkg_delete foo-1.2.3 — Команда для удаления пакета.
ifconfig -a — Команда для отображения сетевого интерфейса.
ping yournet.kz — Команда ping, известная пожалуй каждому системному администратору.
traceroute yournet.kz — Команда выводит таблицу трассировки к узлу.
reboot — Команда выполняет перезагрузку системы.
portsnap fetch — Команда выполняет обновление портов.
where is wget — Команда отображает полный путь к программе, в примере это wget.
scp -p -r /home/dir root@192.168.200.33:/home/server — Команда для копирования файлов на другой сервер.
less file — Команда для просмотра содержимого файла.
command | less — Команда для запуска результатов работы команды с less.
Что проверил – добавил в комментариях от себя, т.к. некоторые приведённые примеры неверны.
Информация о процессоре
Команды для получения данных о процессоре.
Информация о дисках
mount – показывает смонтированные подразделы и флаги из монтирования;
df – показывает смонтированные подразделы, их размер и свободное место на них;
fdisk /dev/ad0 – показывает информацию о диске fad0 и разделах на нем;
disklabel /dev/ad0s1 – показывает список подразделов в первом разделе диска dad0;
swapinfo – показывает список подразделов свопинга на дисках и их использование;
fstat – показывает список открытых файлов (имена файлов не выводятся);
pstat -f – выводит список открытых файлов (имена файлов не выводятся);
systat -vmstat n – каждые n секунд выводит количество транзакций с диском в секунду, объем записанных/считанных данных на диск в секунду, средний размер транзакции и процент времени в течение которого диск был занят работой;
iostat – выводит информацию, аналогичную systat -vmstat , но не выводит занятости диска по времени и может выводить среднюю статистику с момента загрузки;
vmstat – выводит количество операций на диске в секунду;
/stand/sysinstall – можно посмотреть и изменить разметку диска и монтирование (bash: /stand/sysinstall: No such file or directory);
less /etc/fstab – таблица монтирования при загрузке.
Службы времени
date – выводит текущее время и дату;
w – выводит, сколько времени назад система загрузилась и залогиненных пользователей;
Есть определенный перечень команд в Ubuntu и FreeBSD, которые используются не очень часто, а в случае с серверами которые один раз настроил и тупо просто мониторишь их, вылетают из головы. Поэтому буду для себя и Вас конспектировать их в данной статье которая будет постоянно дополняться и изменяться.
- shutdown – r now – перезагрузка системы
- shutdown -p now – выключение системы (принудительное если shutdown без ключей не срабатывает)
- reboot – перезагрузка системы
Если при установки freesd вы не установили порты(и папки ports нету в usr) то эти две команды исправят этот пробел
- portsnap fetch (выполняется очень долго т.к. из интернета подтягивается большое кол-во обновлений)
- portsnap extract
- portsnap fetch update (обновление портов)
—————————————————————————————————
Удаляем все комментарии в файле
Такой простой командой можно проверить статус запущенного сервиса/usr/local/etc/rc.d/openfire status
результат должны получить такой :
—————————————————————————————————
Очистить содержимое файла в Linux
cat /dev/null > /var/log/messages
—————————————————————————————————
Как узнать размер папки в Freebsd
Для того, чтобы узнать размер конкретной папки, вводим:
du -hsx /var , где /var – путь к папке о которой хотим узнать размер
Вывести на экран содержимое файла без комментариев
Вывести версию операционной системы
Если Вам нужно узнать версию системы, системы, то Вам поможет след команда:
uname -sr
FreeBSD 8.2-PRERELEASE
для более детального отчета можно использовать команду
Как узнать версию установленного пакета
pkg info | grep mc
libXdmcp-1.1.2 X Display Manager Control Protocol library
mc-4.8.18 Midnight Commander, a free Norton Commander Clone
sarg -version
SARG version: 2.3.10 Apr-12-2015
Как узнать сколько осталось место на диске
Читайте также: