Megjelent a Linux 7.0-mk2: többmagos kernelre szabott Linux ígéretes teljesítménnyel

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

Tavaly javasolták a több-kernel-es architektúrát a Linux kernel-höz, hogy egy fizikai gépen több, egymástól független kernel-példány fusson párhuzamosan. A „multikernel” Linuxot futtató minden egyes kernel dedikált CPU-magokon dolgozik, miközben megosztják az alattuk lévő hardver erőforrásait. A ma megjelent Linux 7.0-mk2-ben már benne vannak a több-kernel-es működéshez szükséges kernel javítások. Az elmúlt évben több multikernel javítócsomagot is közzétettek, most pedig ezeket kényelmesen összegyűjtve, a Linux 7.0 kernel fára illesztve adták ki, hogy könnyebb legyen a tesztelés és az értékelés. Ezt tekintik a multikernel Linux fa első nyilvános kiadásának.

A Multikernel Technologies fejlesztője, Cong Wang így foglalja össze:

„Az mklinux lehetővé teszi, hogy egy gép több, egymástól független Linux kernelt futtasson egyszerre, közvetlenül a hardveren, hypervisor nélkül. A gazda kernel birtokol egy CPU-, memória- és PCI-eszköz készletet, ezt a készletet felosztja példányokra, majd minden példányba egy-egy új kernel-t indít a kexec_file_load() segítségével. Minden indított kernel natívan fut a saját CPU-in, a saját fizikai memóriáján és a saját eszközein. Nincs emuláció és nincs csapdázás; csak az osztozik, amin úgy döntesz, hogy osztozni akarsz.

A példányokat egy, a /sys/fs/multikernel/ alá írt device tree írja le, a device tree overlay-k pedig újraindítás nélkül mozgatják a memóriát, a CPU-kat és az eszközöket a készlet és a futó példányok között. Egy példány leállítható, az erőforrásai visszavehetők, majd egy másik kernel-val újraindítható.

A virtuális gépekhez képest nincs VM exit útvonal, nincs másodszintű lapozótábla és nincs device model. A konténerekhez képest pedig a példányok nem osztoznak egy közös kernel-n, így egy kernel-ban fellépő zárolás, kernelpánik vagy exploit nem ér el egy másikat.”

A mai nyilvános kiadás benchmarkokat is tartalmaz, amelyek a KVM-hez képest mutatják be a teljesítményt egy 2 magos/vCPU-s összevetésben:

  Benchmark                   Multikernel   KVM guest   Ratio
  Null syscall                   0.070 us    0.099 us   1.42x
  read()                         0.099 us    0.124 us   1.26x
  write()                        0.082 us    0.114 us   1.39x
  Signal handler install         0.123 us    0.159 us   1.29x
  Signal handler catch           0.770 us    0.881 us   1.14x
  Context switch (2 procs)        1.37 us     3.42 us   2.50x
  Pipe latency                    3.24 us     7.06 us   2.18x
  AF_UNIX stream latency          4.81 us     7.48 us   1.55x
  fork + exit                      115 us      123 us   1.07x

Készült néhány mérés egy 24 magos konfiguráción is, ahol az látszik, hogy két kernel párhuzamos futtatása előnyt jelent egyetlen kernelhez képest:

  Test          1 kernel      2 kernels     Ratio
  unlink1        300K/s        780K/s       2.60x
  rename1        792K/s       1.69M/s       2.14x
  stat2         9.42M/s       19.8M/s       2.10x
  open3         3.42M/s       7.41M/s       2.17x
  open1         9.6M/s        19.3M/s       2.02x
  pread4        ~5.2M/s      ~10.1M/s       1.94x
  mmap1         9.9M/s        12.2M/s       1.23x
  tcp_conn1     1.81M/s       2.10M/s       1.16x
  getppid1     268.2M/s      267.1M/s       1.00x  (control)
  futex4       135.5M/s      134.9M/s       1.00x  (control)
  poll2         26.7M/s       26.5M/s       0.99x  (control)

További részletek olvashatók a mai bejelentésben a Linux kernel levelezőlistán. Egyelőre nem világos, hogy a multikernel támogatás mikor és hogyan kerülhet be a mainline Linux kernel-be; ha be is kerül, valószínűleg még jó ideig várni kell rá.