null

Об использовании SunVTS 7.0 на Ultra 5/10

Недавно понадобилось протестировать такую вот очень древнюю машинку. SunVTS на ней упорно не хотел запускаться - подвисал и потом падал. Как оказалось, в своем логе /var/sunvts/logs/sunvts.err он честно ругался на нехватку памяти и невозможность выделить ее с помощью malloc. Дело в том, что в Ultra 10 было установлено всего 256 мегабайт памяти, и притом значительная ее часть уже была запользована Solaris 10, а так как swap не был сконфигурирован, процесс vtsk (VTS Kernel) отказывался запускаться.
Но не тут-то было. Я зашел в bash-шелл и добавил swap:

root@ultra# swap -a /dev/dsk/c0t0d0s2



Т.к. был подсоединен неиспользуемый диск, я захватил его целиком, но лучше предварительно выяснить, на каком слайсе располагается своп с помощью утилитки format, после чего вручную стартовал sunvts:

root@ultra# /usr/sunvts/bin/startsunvts -t



Тут появилась еще одна проблема - при TERM=vt100 на моем ноутбуке никак не работали стрелки, так что навигация по TTY-интерфейсу SunVTS была несколько ограничена. Как оказалось, у SunVTS существует также командный интерфейс vts_cmd, чем я и воспользовался:

root@ultra# /usr/sunvts/bin/startsunvts -c
root@ultra# cd /usr/sunvts/bin/


Теперь можно выбрать нужные тесты:

root@ultra # vts_cmd disable_test all
root@ultra # vts_cmd enable_test Processor
root@ultra # vts_cmd enable_test Memory  
root@ultra # vts_cmd enable_test Interconnect



Проверить их состояние:

root@ultra # vts_cmd list_tests             
Logical Test:Disk;Enabled:False;Scheduling Policy:Time=0;Stress:high; Progress:0;Status:idle(Pass=0/Error=0),
Logical Test:Graphics;Enabled:False;Scheduling Policy:Time=0;Stress:high; Progress:0;Status:idle(Pass=0/Error=0),
Logical Test:Interconnect;Enabled:True;Scheduling Policy:Time=0;Stress:high; Progress:0;Status:idle(Pass=0/Error=0),
Logical Test:Ioports;Enabled:False;Scheduling Policy:Time=0;Stress:high; Progress:0;Status:idle(Pass=0/Error=0),
Logical Test:Media;Enabled:False;Scheduling Policy:Time=0;Stress:high; Progress:0;Status:idle(Pass=0/Error=0),
Logical Test:Memory;Enabled:True;Scheduling Policy:Time=0;Stress:high; Progress:0;Status:idle(Pass=0/Error=0),
Logical Test:Processor;Enabled:True;Scheduling Policy:Time=0;Stress:high; Progress:0;Status:idle(Pass=0/Error=0)



И запустить SunVTS

root@ultra # vts_cmd start



Осталось только настроить логирование вывода в терминале. Для этого я написал и запустил следующий скрипт:

#!/usr/bin/bash

while :
do
      date
      /usr/sunvts/bin/vts_cmd get_status Processor
      /usr/sunvts/bin/vts_cmd get_status Memory
      /usr/sunvts/bin/vts_cmd get_status Interconnect
      sleep 300
done


Ну вот и все. Теперь каждые 5 минут на консоль выводится статус тестов. Можно со спокойной душой ехать на выходные!

К списку статей

 

Интересуюсь по большей части системным анализом программного обеспечения: поиском багов и анализом неисправностей, а также системным программированием (и не оставляю надежд запилить свою операционку, хотя нехватка времени сказывается :) ). Программированием увлекаюсь с 12 лет, но так уж получилось, что стал я инженером.

Основная сфера моей деятельности связана с поддержкой Solaris и оборудования Sun/Oracle, хотя в последнее время к ним прибавились технологии виртуализации (линейка Citrix Xen) и всякое разное от IBM - от xSeries до Power. Учусь на кафедре Вычислительной Техники НИУ ИТМО.

See you...out there!

http://www.facebook.com/profile.php?id=100001947776045
https://twitter.com/AnnoyingBugs

Ещё на эту же тему:

Полезная магия VirtualBox
Маленькие хитрости OpenSolaris
locked аккаунты и сервисы Solaris
Получение размера ZFS-пула с точностью до байта
Определяем причину медленной работы системы хранения данных
Немного об именах дисковых устройств в Solaris
Сетевая установка Solaris с дополнительными драйверами на x86
Oracle SGA и Solaris Projects - выставляем правильное значение Shared Memory.