GNU/Linux >> Znalost Linux >  >> Linux

Zmatek ohledně interního asynchronního I/O mechanismu node.js

  1. Nejprve libuv odstranil libeio z toho. Ale provádí asynchronní I/O souboru s fondem vláken jako libeio přesně jak jste zmínil.

  2. libuv také odstraní libev . Provádí asynchronní síťové I/O založené na asynchronních I/O rozhraních na různých platformách, jako je epoll , kqueue a IOCP , bez fondu nití. Existuje smyčka událostí, která běží na hlavním vláknu uv který se dotazuje na I/O události a zpracovává je.

  3. Fond vláken uvnitř libuv je fond vláken s pevnou velikostí (4 v systému podobnému uinx). Provádí roli fronty úloh a zabraňuje vyčerpání systémových prostředků generováním vláken na dobu neurčitou, když se požadavky zvyšují.


Do verze 0.6 používal uzel libev ke spuštění smyčky událostí a libeio pro asynchronní I/O (Unixový backend je silně postaven na těchto dvou knihovnách). Ale libuv začal nahrazovat libev a libeio ve verzi 0.8. Provádí, spravuje a spravuje všechny io a události ve fondu událostí. libuv je volba v multiplatformních asynchronních IO knihovnách.

  1. Ano, do uzlu 0.6, zastaralý ve verzi 0.8 a používá fond vláken
  2. Ano, ale libev nepoužívá fond vláken. Viz zde

    Vysvětlení :Podle odkazu v otázce, kterou jsem zveřejnil, libeio podporuje všechny funkce POSIX zabývající se I/O (včetně soketu). Ale autor uzlu se rozhodl jej použít pouze pro asynchronní I/O souboru a používá libev pro síťové I/O. Nevím, odkud jste to slyšeli, ale můžete použít epoll na běžné soubory.

  3. libev používá smyčku událostí, takže zde žádné problémy.

  4. Ano IOCP zpracovává asynchronní I/O ve Windows, jádro používá fondy vláken.
  5. Nové linuxové jádro má epoll, kqueue v novém BSD jádře. libev a libeio byly pro prostředí linux a poskytují smyčku událostí/asynchronní IO pro všechna jádra (podporuje select, poll, epoll, kqueue).

Aktualizovat otázky:

  1. o libuv toho moc nevím
  2. možná dost (nevím)
  3. Zde jsou mé poznatky o systému Windows 8, které jsem zkontroloval prostřednictvím Průzkumníka procesů. Zobrazeny 4 vlákna, 1 DLL, 1 soubor a 1 sekce (celkem 7 záznamů) pro proces aplikace uzlu.

  4. ps -eLf zobrazuje všechna vlákna a procesy, možná to přefiltrujete, hledejte uzel proces pid jako ps -eLf | grep x kde x je pid pro proces uzlu.


Linux
  1. Hlášení I/O z příkazového řádku Linuxu

  2. Konflikty Node.js:/sbin/node vs /usr/bin/node?

  3. Nakonfigurujte flash disky v instancích High I/O jako datové disky

  1. Úvahy o migraci na cloudový server pro obecné účely nebo I/O

  2. Jak děláte neblokující I/O konzoly na Linuxu v C?

  3. Jak zastavit „nepřerušitelný“ proces v Linuxu?

  1. Linux a porty pro dokončení I/O?

  2. Jak vyčistit diskové I/O mezipaměti v Linuxu?

  3. Co je Unix/Linux ekvivalentem Registered I/O?