Про мейнфреймы и эмуляторы

Oct 12, 2023 10:57


Потребовалось тут собирать постгрес под мейнфреймы. В смысле s390x. Ну после некоторого опыта работы с плафтормой PowerPC я предпочитаю на партнерское железо не надеяться, и если уж нет соответствующей железяки в нашем датацентре, использовать эмуляторы.

Но ведь оно, блин, так торомозит...

Запускаю qemu-system-s390x со следующими параметрами

qemu-system-s390x -smp 16 -drive file=SLES15-SP5-Minimal-VM.s390x-kvm-Build7.1.qcow2,format=qcow2 -m 4G
Оно радостно рапортует что у него аж под 14К bogomips (при том что на хосте 4800).



fadmin@sles15-s390x:~> lscpu Architecture: s390x CPU op-mode(s): 32-bit, 64-bit Byte Order: Big Endian CPU(s): 16 On-line CPU(s) list: 0-15 Vendor ID: IBM/S390 Machine type: 8561 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s) per book: 1 Book(s) per drawer: 1 Drawer(s): 16 BogoMIPS: 13370.00 Dispatching mode: horizontal Flags: esan3 zarch stfle msa ldisp eimm etf3eh highgprs vx vxe vxe2 Virtualization features: Hypervisor: KVM/Linux Hypervisor vendor: KVM Virtualization type: full NUMA: NUMA node(s): 1 NUMA node0 CPU(s): 0-15 Vulnerabilities: Gather data sampling: Not affected Itlb multihit: Not affected L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Not affected Retbleed: Not affected Spec rstack overflow: Not affected Spec store bypass: Not affected Spectre v1: Mitigation; __user pointer sanitization Spectre v2: Mitigation; execute trampolines Srbds: Not affected Tsx async abort: Not affected

А работает при этом медленно и печально. Ну то есть собирается то с относительно нормальной скоростью (c -j8) 26 минут постгрес и 6 минут контриб (для сравнения в user mode emulation, где число процессоров никто не ограничивает, сборка пакета постгреса (т.е. сам постгрес, плюс контриб, плюс оверхед на заворачиваение в rpm и установку Build-Requirements) занимает полчаса.

А вот тесты... make -C contrib check - пять часов, installcheck - видимо столько же - там просто тестовый скрипт не дождался и вырубил по глобальному таймауту 12 часов.

QEMU относительно свежий, 7.2. Могу поставить 8.0, но вряд ли это что-то изменит. Там changelog для этой архитектуры
  • Improved zPCI passthrough device handling
  • Fixed emulation of MVCP, MVCS, CHRL and CGHRL instructions
  • Support for asynchronous teardown of memory of secure KVM guests during reboot

Увеличение параллельности вряд ли что-то может серьезно изменить. Там не столько параллельных процессов в тестах, чтобы задействовать сильно больше 16 ядер. Возникает странная мысль поиграться с параметрами распределения процессоров по сокетам, books и drawers (не знаю что такое books и drawers, в привычных мне писюках их не бывает). Хотя может несколько процентов я на этом выиграю, но не разы. А хотелось бы хотя бы разы.

Интересно, может помочь переход с qemu на hercules?

И вообще читают ли меня люди которые что-то в этом вопросе понимают?
kondor еще в ЖЖ ходит, например?

X-Post from DW

postgresql, компьютерное, вопросы

Previous post Next post
Up