1

Есть сервер на KVM. На нем крутится 4 виртуалки.
На одной из них время от времени запускается демон написанный на perl. И вот когда он работает у меня отваливается соседняя виртуалка.

Нагрузка top на хостовой системе показывает что все норм. Ни %us, %sy не зашкаливает, ни %wa.  Как только демон отработает связь с соседним сервером восстанавливается и все сайты на нем опять работают.

Вот нагрузка на том сервере на котором работает демон на perl в то время когда отваливается соседний веб сервер. Может даже отваливаются и все остальные виртуалки. Проверить не смог пока.

[root@localhost pbs]# ps axfu | grep pbs && df -h /tmp
root      1882  0.0  0.1 147560  2400 pts/0    S    18:23   0:00                      \_ ./pbs
root      2020  0.1  0.6  68952 13788 pts/0    S    18:36   0:00                      |   \_ /usr/bin/perl /home/admsasha/source/aum/aum --chroot=/var/www/html/pbs/chroot/chroot_mageia3_x86_64.tar.gz --distrib=http://mirror.yandex.ru/mageia/distrib/3/x86_64/ --log-file=/var/www/html/pbs/users/user0/logs/1/mageia3_x86_64.txt --upload-dir=/tmp/aum/files/1 --rpmmacros=/var/www/html/pbs/users/user0/.rpmmacros /var/www/html/pbs/users/user0/srpms/1/fpc-2.6.2-5.mga3.mrc.src.rpm

Ну и для кучи сильно растет папка /tmp во время работы демона

Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/vdb1           99G         3,3G   91G            4% /tmp

Что может быть?

З.Ы. Такая фигня появилась после того как я /tmp вынес на отдельный диск. /tmp - отформатирован на ext4

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

2

что именно делает этот демон? что показывает динамика kvm_stat во время нагрузки?

3

Такие показатели во время нормальной работы.

io_exits             758516766   13469
irq_exits             34536395     100

Когда сработает демон проверить не могу сейчас. Вполне вероятно, что отваливаются все виртуалки. Придется дождаться конца рабочего времени.

dyasny пишет:

что именно делает этот демон?

Демон отслеживает состояние в базе на предмет нужного флага. Если он тот который нужен, то запускает скрипт на perl, а тот уже создает chroot окружение и в нем с помощью rpmbuild собирает пакет и раскидывает куда надо.

Не много ошибся. Сам демон написан на C++. А он потом уже запускает программу на Perl.

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

4

Сейчас попробовал временные файлы писать не в /tmp, а в /home/tmp и серваки не валятся. Что же это такое?

Гостевая на виртуалке зовется bs. Видно что нагружена.

Нагрузка на хостовую ОС во время работы демона.
http://storage7.static.itmages.ru/i/13/1203/s_1386054378_3229686_b0413c9bdf.png

kvm_stat  остался примерно на том же уровне

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

5

XliN пишет:

Демон отслеживает состояние в базе на предмет нужного флага

то есть запускает select каждые N секунд? уже "больно" ab


> создает chroot окружение и в нем с помощью rpmbuild собирает пакет и раскидывает куда надо

тоже  не легкая задача, сборка ванильного ядра - мой любимый бенчмарк и load generator - давит сразу на все системы, и диски, и проц

XliN пишет:

Сейчас попробовал временные файлы писать не в /tmp, а в /home/tmp и серваки не валятся. Что же это такое?

у них mountpoint одинаковый?

6

dyasny пишет:

у них mountpoint одинаковый?

Нет. Разный. /home лежит на отдельном разделе диска vdaX, а /tmp вынесен на отдельный диск с одним разделом vdb1

dyasny, Еще просьба. На скрине посмотри load average. Не большой? Если учитывать что на хосте виртуалки на одной из которых сборочная, а на другой win2k8 с двумя базами данных на MSSQL? Одновременно с базой работают человек 40-50.

dyasny пишет:

то есть запускает select каждые N секунд? уже "больно"

Судя по выводу ps, демон жрет совсем мизер.

dyasny пишет:

тоже  не легкая задача, сборка ванильного ядра - мой любимый бенчмарк и load generator - давит сразу на все системы, и диски, и проц

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

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

7

XliN пишет:

Нет. Разный. /home лежит на отдельном разделе диска vdaX, а /tmp вынесен на отдельный диск с одним разделом vdb1

noatime?


XliN пишет:

dyasny, Еще просьба. На скрине посмотри load average. Не большой? Если учитывать что на хосте виртуалки на одной из которых сборочная, а на другой win2k8 с двумя базами данных на MSSQL? Одновременно с базой работают человек 40-50.

тоже нагрузочка, особенно mssql который иногда хрен оттюнишь

XliN пишет:

Судя по выводу ps, демон жрет совсем мизер.

меня больше интересует нагрузка на диски, имхо именно они проседают

XliN пишет:

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

я думаю что надо смореть на дисковую подсистему, может быть даже подбросить туда массивчик на SSD для улучшения производительности

8

Xlin, какие у тебя диски и рейд?

9

AlfaStriker пишет:

какие у тебя диски и рейд

На хостовой RAID 1. На виртуалки пускаю virtio в raw

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

10

Попробовал noatime. Перемонтировал tmp

mount /tmp -o remount

Все тоже самое. Вешается все сразу в момент сборки.

fstab

UUID=cf9e1134-8972-4522-a6de-797a3ee60579 / ext4 acl,relatime 1 1
# Entry for /dev/vda8 :
UUID=38e524d1-3af5-41e1-be50-678cdc2d3149 /home ext4 acl,relatime 1 2
none /proc proc defaults 0 0
# Entry for /dev/vda9 :
#UUID=26c70174-f57e-488e-9f6b-93cedd7c900f /tmp ext4 acl,relatime 1 2
UUID=adf22090-f86f-46ce-a60d-95d7989df112 /tmp ext4  noatime  0 1
# Entry for /dev/vda6 :
UUID=80d4d31e-df1a-4007-8dcb-734e45e07d6a /usr ext4 acl,relatime 1 2
# Entry for /dev/vda7 :
UUID=ffc3dfd7-4109-4914-9bce-cafa3259e2bf /var ext4 acl,relatime 1 2
# Entry for /dev/vda5 :
UUID=8e742161-ecd8-4db3-8757-2be8359e6623 swap swap defaults 0 0
/home/lostmemories/html/pbs.mageialinux.ru /var/www/html/pbs none    bind    0    0
MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

11

а что было в kvm_stat во время сборки?

12

dyasny пишет:

а что было в kvm_stat во время сборки?

Сейчас запущу и скину выхлоп kvm_stat -1

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

13

Во время закачки пакетов для сборки

+ открыть спойлер
efer_reload                    0         0
exits                 5375419081     63552
fpu_reload              40158713      1661
halt_exits             803054371      5888
halt_wakeup            789777058      5791
host_state_reload     3256218539     41316
hypercalls                     0         0
insn_emulation        1740377270     24894
insn_emulation_fail            0         0
invlpg                         0         0
io_exits              2437700876     15824
irq_exits              136950930       354
irq_injections         936912907      7600
irq_window              51633784       299
largepages                 18353         2
mmio_exits              15364639     16611
mmu_cache_miss             25112         0
mmu_flooded                    0         0
mmu_pde_zapped                 0         0
mmu_pte_updated                0         0
mmu_pte_write               6000         0
mmu_recycled                   0         0
mmu_shadow_zapped          59706         0
mmu_unsync                     0         0
nmi_injections                 0         0
nmi_window                     0         0
pf_fixed                  186179         2
pf_guest                       0         0
remote_tlb_flush            5627         0
request_irq                    0         0
signal_exits                  18         0
tlb_flush                  12142         0

Во врмемя сборки

+ открыть спойлер
efer_reload                    0         0
exits                 5389529764     36790
fpu_reload              40415133       249
halt_exits             804715454      4730
halt_wakeup            791360956      4392
host_state_reload     3264684847     18223
hypercalls                     0         0
insn_emulation        1745078631      8780
insn_emulation_fail            0         0
invlpg                         0         0
io_exits              2442180842     13051
irq_exits              137396137      2139
irq_injections         939012528      6174
irq_window              51712645       380
largepages                 20708         0
mmio_exits              17309010       185
mmu_cache_miss             25196         0
mmu_flooded                    0         0
mmu_pde_zapped                 0         0
mmu_pte_updated                0         0
mmu_pte_write               6000         0
mmu_recycled                   0         0
mmu_shadow_zapped          59706         0
mmu_unsync                     0         0
nmi_injections                 0         0
nmi_window                     0         0
pf_fixed                  228836         0
pf_guest                       0         0
remote_tlb_flush            8520         0
request_irq                    0         0
signal_exits                  18         0
tlb_flush                  12142         0
MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

14

irq_exits похоже прыгает вверх, хотя тут не разовый аутпут надо доставать а лог с динамикой в графике. А потом всю пачку - в мейлинг лист qemu, если повезет - Глеб посмотрит и подскажет в чем дело

15

dyasny, А как мне собрать эту статистику? Тем более с графиками? А Глеб местный русский гугру я так понимаю.

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

16

XliN пишет:

dyasny, А как мне собрать эту статистику? Тем более с графиками?

у kvm_stat есть свич выплевывающий все в виде лога (который потом можно импортировать в эксель в формате CSV и построить графики)

а Глеб это местный Израильский гуру, один из ведущих разработчиков QEMU