Начало » Использование СУБД » Firebird, HQbird, InterBase » Hyper-V + Ubuntu + Firebird
Hyper-V + Ubuntu + Firebird [сообщение #6052] |
Tue, 29 April 2025 14:00  |
sg729
Сообщений: 72 Зарегистрирован: June 2022
|
Member |
|
|
Дано:
Виртуалка Hyper-V : 8 Cores, 8 Gb RAM
Ubuntu Server 24.04.2 LTS
LI-V3.0.12.33787 Firebird 3.0 SuperServer
firebird.conf и databases.conf созданы калькулятором
На сервере 22 базы разного размера: максимум - 3 Гб , минимум 100 Мб
Клиенты в разных сетях, связанных между собой по VPN.
Одновременных подключений 2-3 на каждую базу. В сумме на сервер не более 50-60.
Основная рабочая нагрузка с 8:00 до 20:00
Цитата:root@ubtest:/opt/firebird# cat /proc/$(pgrep firebird)/limits
Limit Soft Limit Hard Limit Units
Max open files 524288 524288 files
Цитата:root@ubtest:/opt/firebird# cat /proc/sys/vm/max_map_count
262144
Итог:
Работает...
НО:
почти каждый день как правило в первой половине дня такая картина продолжительностью примерно 20 минут, и разумеется на клиентах тормоза:


в остальное время CPU Load averages на уровне 0,2-0,3 и скорость вполне приемлемая


Смотрел логи:
firebird.log -
ничего подозрительного кроме "INET/inet_error: read errno = 104" с одного клиента (понятно по какой причине, там канал слабый и глючный)
kernel.log -
2025-04-29T07:44:56.093002+03:00 ubtest kernel: workqueue: ata_sff_pio_task hogged CPU for >10000us 32 times, consider switching to WQ_UNBOUND
syslog -
ничего подозрительного, те же сервисы, что есть в логе с 10:20 до 10:40, стартуют и финишируют и в другое время, когда нагрузка мизерная
Собственно вопрос:
Что бы еще посмотреть, чтобы понять причину сего 20-минутного безобразия?
Возможные гипотезы:
- Мои ошибки в настройке Firebird - если так, плиззз, ткните меня носом в то, что еще раз нужно проверить?
- Сама идея такой связки (Hyper-V + Ubuntu + Firebird) бредовая и не стоит тратить на нее время
- Мало ресурсов? Добавить Cores, RAM?
- Стартует какое-то обновление пакетов или чего-то еще?
Смотрел задачи Cron ничего криминального не заметил.
В настройках Webmin Software Package Updates выбрана опция Just notify for any updates
Перенастроил apt-daily.timer и apt-daily-upgrade.timer на ночное время (по инструкции здесь https://tokmakov.msk.ru/blog/item/743)
И все равно иногда замечаю, что прилетают какие-то обновы и несмотря ни на что самостоятельно обновляются.
|
|
|
|
|
|
|
Re: Hyper-V + Ubuntu + Firebird [сообщение #6058 является ответом на сообщение #6056] |
Wed, 30 April 2025 10:37   |
basid
Сообщений: 177 Зарегистрирован: June 2022 Географическое положение: Asia/Irkutsk
|
Senior Member |
|
|
1. Не надо включать отображение потоков исполнения (threads) top-ом. Вы всё равно не знаете, чем именно занят каждый поток;
2. Было бы неплохо видеть не вот эту вот "типа подробную" фигню, а текстовый вывод второй-третьей итерации top -ibn2 или -ibn3, подрезанный до значимой части. Пример:top - 09:58:24 up 135 days, 18:53, 2 users, load average: 10,43, 9,39, 9,29
Tasks: 500 total, 1 running, 499 sleeping, 0 stopped, 0 zombie
%Cpu(s): 20,8 us, 2,6 sy, 0,0 ni, 75,4 id, 0,6 wa, 0,4 hi, 0,2 si, 0,0 st
GiB Mem : 251,3 total, 2,4 free, 179,9 used, 69,0 buff/cache
GiB Swap: 68,0 total, 67,6 free, 0,4 used. 69,1 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
710587 firebird 20 0 190,9g 177,5g 328,0m S 819,2 70,6 5689:34 firebird 3. Краткую сводку о системе собирает, например, такая последовательность команд:export LC_MESSAGES=en_US.UTF-8;\
grep PRETTY_NAME /etc/os-release|cut -d\" -f2;\
lscpu|grep -v "^\(F\|Vu\)";\
free -h;\
lsblk Локаль en-US.UTF-8 должна быть вне зависимости от принятого у вас языка системы.
Вывод полезно отредактировать, убрав ненужное. Пример:Имя-версия линукса
Architecture: x86_64
CPU(s): 40
Model name: Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz
Thread(s) per core: 2
Core(s) per socket: 10
Socket(s): 2
CPU max MHz: 3000,0000
CPU min MHz: 800,0000
Virtualization: VT-x
total used free shared buff/cache available
Mem: 251Gi 182Gi 2,0Gi 304Mi 67Gi 66Gi
Swap: 67Gi 366Mi 67Gi
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb 8:16 0 893,8G 0 disk
├─sdb1 8:17 0 1G 0 part /boot
└─sdb2 8:18 0 892,7G 0 part
├─том1 253:0 0 70G 0 lvm /
├─том2 253:1 0 4G 0 lvm [SWAP]
└─том3 253:2 0 818,7G 0 lvm /home
sdc 8:32 0 14T 0 disk
└─sdc1 8:33 0 14T 0 part /каталог 4. Немало полезной информации даёт интервальная статистика iostat (второй и последующие блоки вывода). Пример (отредактирован, оставлена значимая часть):iostat -xmh 60 2 sdb sdc
Linux ядро-версия (хост) 30.04.2025 _x86_64_ (40 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
19,5% 0,0% 2,6% 0,4% 0,0% 77,5%
Device rB/s r_await wB/s w_await %util
sdb 0,9k 0,00 132,8k 0,30 0,1%
sdc 207,4M 4,88 8,0M 0,22 46,3% 5. Use sql-trace, Luck:fbtracemgr -se localhost:service_mgr -c конфиг -sta|gzip -1q > вывод.gz & Заряжаем трассировку всех запросов в интересующий нас интервал времени, останавливаем, анализируем собранное.
6. Вместо скриншотов полезно прикладывать архив, содержащий firebird.conf, databases.conf и, возможно, файл с выводом gstat -h по всем базам. conf-файлы полезно отфильтровать через grep -v ^# conf-файл|grep -v ^$. Вывод gstat тоже можно подрезать.
P.S.
Не всегда, но и не так, чтобы редко, чтение исходных данных может дать ответ на интересующий вопрос.
P.P.S.
Могу необоснованно предположить, что у вашей виртуалки конские ожидания на iowait. Что, скорее всего, означает дохлые диски. Например, крутые серверные, но read-intensive.
[Обновления: Wed, 30 April 2025 10:40] Известить модератора
|
|
|
|
Переход к форуму:
Текущее время: Thu May 01 00:38:56 GMT+3 2025
Общее время, затраченное на создание страницы: 0.00718 секунд
|