Re: Počet vláken

Martin Záruba swz na volny.cz
Čtvrtek Prosinec 10 12:44:37 CET 2020


Požívám ten z knihoven

Martin Záruba

Dne 10.12.2020 v 12:38 Radek Sztwiorok napsal(a):
> Tak jeste jednou ovladac modbus mate vlastni nebo pouzivate neco z 
> knihoven?
>
> čt 10. 12. 2020 v 12:35 odesílatel Martin Záruba <swz na volny.cz 
> <mailto:swz na volny.cz>> napsal:
>
>     Jasně. Jenže vyšlo mi, že by to zvládlo cca 4000 vláken. To mi
>     pochopitelně stačí.
>
>     Martin Záruba
>
>     Dne 10.12.2020 v 12:31 Radek Sztwiorok napsal(a):
>     > Dojdou ale pozdeji.:-)
>     > Kouknete ve spravci programu jestli vam pomalu neroste potřebná
>     pamet
>     > u bezici aplikace
>     >
>     > čt 10. 12. 2020 v 12:25 odesílatel Martin Záruba <swz na volny.cz
>     <mailto:swz na volny.cz>
>     > <mailto:swz na volny.cz <mailto:swz na volny.cz>>> napsal:
>     >
>     >     Hurá, už to funguje. Ta odpověď byla opravdu na
>     > https://forum.lazarus.freepascal.org/index.php?topic=26441.0
>     <https://forum.lazarus.freepascal.org/index.php?topic=26441.0>
>     >   
>      <https://forum.lazarus.freepascal.org/index.php?topic=26441.0
>     <https://forum.lazarus.freepascal.org/index.php?topic=26441.0>>
>     >   
>      <https://forum.lazarus.freepascal.org/index.php?topic=26441.0
>     <https://forum.lazarus.freepascal.org/index.php?topic=26441.0>
>     >   
>      <https://forum.lazarus.freepascal.org/index.php?topic=26441.0
>     <https://forum.lazarus.freepascal.org/index.php?topic=26441.0>>>
>     >
>     >     Jde o ten limit 2 GB. Když se to podělí defaultní hodnotou
>     16 MB na
>     >     vlákno, dojde počet vláken. Jenže já naprosto nepotřebuji 16
>     MB. Ve
>     >     Volby projektu, Generování kódu, Velikost zásobníku -Cs jsem dal
>     >     524288,
>     >     tedy 0,5MB a vlákna nedojdou.
>     >
>     >     Moc děkuji
>     >
>     >     Martin Záruba
>     >
>     >     Dne 10.12.2020 v 12:11 Radek Sztwiorok napsal(a):
>     >     > Ten pocet problem nebude.
>     >     > Mne tu aktualne bezi  do diagnostiky napsane v lazarusu na
>     >     modbusu 236
>     >     > zarizeni a nekope se to. Tam bude nekde chybka v programu.
>     >     >
>     >     > čt 10. 12. 2020 v 11:59 odesílatel Marek Sembol
>     >     <hwm.land na gmail.com <mailto:hwm.land na gmail.com>
>     <mailto:hwm.land na gmail.com <mailto:hwm.land na gmail.com>>
>     >     > <mailto:hwm.land na gmail.com <mailto:hwm.land na gmail.com>
>     <mailto:hwm.land na gmail.com <mailto:hwm.land na gmail.com>>>> napsal:
>     >     >
>     >     >     Jak rikam - Lazarusi detaily neznam, ale sockety
>     >     >     podporuji non-blocking operace snad 'odjakziva' - a presne
>     >     tak se
>     >     >     to taky v servrech resi.
>     >     >     Pravda - v dnesni dobe uz je to lepe zabaleno, takze v
>     .NET pred
>     >     >     4.0 to byly pary metod BeginNeco/EndNeco, od 4.0 jeste
>     >     >     jednoduzsi pouziti pomoci NecoAsync
>     >     >     Verim tomu, ze Lazarus bude mit taky podporu
>     >     >
>     >     >     PS: rozumim tomu spravne, ze vam tam komunikuje 120+ PLC?
>     >     >     BR,
>     >     >     Marek
>     >     >
>     >     >     On Thu, Dec 10, 2020 at 11:25 AM Martin Záruba
>     <swz na volny.cz <mailto:swz na volny.cz>
>     >     <mailto:swz na volny.cz <mailto:swz na volny.cz>>
>     >     >     <mailto:swz na volny.cz <mailto:swz na volny.cz>
>     <mailto:swz na volny.cz <mailto:swz na volny.cz>>>> wrote:
>     >     >
>     >     >         No já to vlastně takto předělal z verze, kdy bylo
>     jedno
>     >     >         vlákno. Ono to v
>     >     >         podstatě funguje tak, že se připojí klient (PLC).
>     Server
>     >     >         vyhodnotí, že
>     >     >         je to oprávněné připojení a pak se již stará o
>     >     komunikaci. Tím
>     >     >         pádem PLC
>     >     >         může být za firewallem a nemusí mít veřejnou IP.
>     Problém
>     >     je v
>     >     >         tom, že
>     >     >         komunikace běží na pomalém modbusu, takže naprostá
>     většina
>     >     >         doby je
>     >     >         čekání na data. Pokud to jsou vlákna, tak to není
>     problém,
>     >     >         protože se o
>     >     >         to stará systém a i na prastarém procesoru je vytížení
>     >     >         zanedbatelné.
>     >     >         Jenže nedovedu si představit, jak se jedno vlákno bude
>     >     starat o
>     >     >         komunikaci s několika zcela asynchronně běžícími
>     procesy.
>     >     >
>     >     >         Jinak tak, jak jste to popsal to funguje, jenže
>     jekmile
>     >     >         naslouchací
>     >     >         vlákno identifikuje požadavek a spustí to komunikační,
>     >     dál se
>     >     >         o to
>     >     >         nestará. To je mi jasné, jenže to komunikační
>     vlákno vlastně
>     >     >         nikdy
>     >     >         nekončí, protože je to smyčka, která čte data (nebo i
>     >     >         zapisuje) z PLC
>     >     >         tak rychle, jak to modbus zvládne. Pokud spojení
>     spadne,
>     >     >         vlákno se
>     >     >         ukončí a PLC se pokusí přihlásit znovu a zase dostane
>     >     vlákno.
>     >     >         Tak mě
>     >     >         nenapadá, jak to udělat jinak.
>     >     >
>     >     >         Martin Záruba
>     >     >
>     >     >         Dne 10.12.2020 v 7:33 Marek Sembol napsal(a):
>     >     >         > Zdravim,
>     >     >         > Lazara neznam ani omylem, ale: Ono chyba 'out of
>     memory'
>     >     >         nemusi nutne
>     >     >         > znamenat, ze dosla pamet obecne. Mnohdy ma
>     program/system
>     >     >         vyhrazenou
>     >     >         > statickou (pevne delky) tabulku na nejake
>     prostredky pokud
>     >     >         nema volny
>     >     >         > slot - vyhodi out-of-memory (a ma pravdu-dosla mu
>     >     vyhrazena
>     >     >         pamet) Na
>     >     >         > podobny problem jsem narazil jednou s .NET (tehdy
>     >     jeste 3.5)
>     >     >         Program
>     >     >         > pomerne intenzivne (az agresivne) vyuzival thready z
>     >     >         ThreadPool.
>     >     >         > Problem byl, ze tam byl taky pevny strop - a
>     jeste zavisly
>     >     >         na poctu
>     >     >         > jader. Tusim 256/jadro.
>     >     >         > Obecna rada - ono stejne neni pro system moc zdrave
>     >     drzet si
>     >     >         stabilne
>     >     >         > tolik thready. Kazda sranda (thread) neco stoji. Ten
>     >     thread
>     >     >         dokonce
>     >     >         > relativne dost.
>     >     >         > Takze moje rada vas nepotesi - predelat strukturu
>     >     programu, aby
>     >     >         > nepotreboval tolik threadu. Neco jako jeden
>     thread na
>     >     >         naslouchani a v
>     >     >         > pripade prichoziho pozadavku, si docasne
>     vytvorit (nejlepe
>     >     >         pouzit z
>     >     >         > thread pool, pokud lazarus ma, jinak si napsat svuj.
>     >     Tvoreni
>     >     >         thredu je
>     >     >         > hodne drahe) threadik na zpracovani pozadavku a
>     pak ho
>     >     >         zas hezky
>     >     >         > vratit/uklidit.
>     >     >         > BR,
>     >     >         > Marek
>     >     >         >
>     >     >         > On Thu, Dec 10, 2020 at 6:51 AM Martin Záruba
>     >     <swz na volny.cz <mailto:swz na volny.cz> <mailto:swz na volny.cz
>     <mailto:swz na volny.cz>>
>     >     >         <mailto:swz na volny.cz <mailto:swz na volny.cz>
>     <mailto:swz na volny.cz <mailto:swz na volny.cz>>>
>     >     >         > <mailto:swz na volny.cz <mailto:swz na volny.cz>
>     <mailto:swz na volny.cz <mailto:swz na volny.cz>>
>     >     <mailto:swz na volny.cz <mailto:swz na volny.cz>
>     <mailto:swz na volny.cz <mailto:swz na volny.cz>>>>> wrote:
>     >     >         >
>     >     >         >     Mám v prostředí Lazarus program, který po
>     >     připojení přes
>     >     >         TCP/IP
>     >     >         >     založí
>     >     >         >     vlákno a provede příslušnou akci. Pokud ale
>     počet
>     >     vláken
>     >     >         dosáhne
>     >     >         >     hodnoty
>     >     >         >     115 dostanu zprávu
>     >     >         >
>     >     >         >     Project xxx vyvolal výjímku třídy ´EThread´ se
>     >     zprávou:
>     >     >         >
>     >     >         >     Thread creation error: K provedení tohoto
>     příkazu
>     >     není dost
>     >     >         >     paměťových
>     >     >         >     prostředků
>     >     >         >
>     >     >         >
>     >     >         >     Jenže ono to nezáleží na paměti. Na různých
>     PC se to
>     >     >         chová stejně.
>     >     >         >     Zjevně někde přetečou nějaké tabulky. Ale kde?
>     >     >         >
>     >     >         >     --
>     >     >         >
>     >     >         >     Martin Záruba
>     >     >         >
>     >     >         >  _______________________________________________
>     >     >         >     HW-list mailing list  - sponsored by
>     www.HW.cz <http://www.HW.cz>
>     >     <http://www.HW.cz <http://www.HW.cz>>
>     >     >         <http://www.HW.cz <http://www.HW.cz>
>     <http://www.HW.cz <http://www.HW.cz>>> <http://www.HW.cz
>     <http://www.HW.cz>
>     >     <http://www.HW.cz <http://www.HW.cz>> <http://www.HW.cz
>     <http://www.HW.cz> <http://www.HW.cz <http://www.HW.cz>>>>
>     >     >         > Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>
>     >     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>>
>     >     >         <mailto:Hw-list na list.hw.cz
>     <mailto:Hw-list na list.hw.cz> <mailto:Hw-list na list.hw.cz
>     <mailto:Hw-list na list.hw.cz>>
>     >     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>>>
>     >     >         > http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>
>     >     >         <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>>
>     >     >         >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>
>     >     >         <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>>>
>     >     >         >
>     >     >         >
>     >     >         > _______________________________________________
>     >     >         > HW-list mailing list  -  sponsored by www.HW.cz
>     <http://www.HW.cz>
>     >     <http://www.HW.cz <http://www.HW.cz>>
>     >     >         <http://www.HW.cz <http://www.HW.cz>
>     <http://www.HW.cz <http://www.HW.cz>>>
>     >     >         > Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>
>     >     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>>
>     >     >         > http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>
>     >     >         <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>>
>     >     >  _______________________________________________
>     >     >         HW-list mailing list  -  sponsored by www.HW.cz
>     <http://www.HW.cz>
>     >     <http://www.HW.cz <http://www.HW.cz>> <http://www.HW.cz
>     <http://www.HW.cz> <http://www.HW.cz <http://www.HW.cz>>>
>     >     > Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>
>     >     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>>
>     >     > http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>
>     >     >         <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>>
>     >     >
>     >     >  _______________________________________________
>     >     >     HW-list mailing list  -  sponsored by www.HW.cz
>     <http://www.HW.cz>
>     >     <http://www.HW.cz <http://www.HW.cz>> <http://www.HW.cz
>     <http://www.HW.cz> <http://www.HW.cz <http://www.HW.cz>>>
>     >     > Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>
>     >     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>>
>     >     > http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>
>     >     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>>
>     >     >
>     >     >
>     >     > _______________________________________________
>     >     > HW-list mailing list  -  sponsored by www.HW.cz
>     <http://www.HW.cz> <http://www.HW.cz <http://www.HW.cz>>
>     >     > Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>
>     >     > http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>
>     >     _______________________________________________
>     >     HW-list mailing list  -  sponsored by www.HW.cz
>     <http://www.HW.cz> <http://www.HW.cz <http://www.HW.cz>>
>     > Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     <mailto:Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>>
>     > http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     >     <http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>>
>     >
>     >
>     > _______________________________________________
>     > HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     > Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     > http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>     _______________________________________________
>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     http://list.hw.cz/mailman/listinfo/hw-list
>     <http://list.hw.cz/mailman/listinfo/hw-list>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list