Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 8.00. Přináší podporu nejnovějších procesorů Intel a AMD nebo také tmavý režim.
Programovací jazyk Racket (Wikipedie), tj. jazyk z rodiny jazyků Lisp a potomek jazyka Scheme, byl vydán v nové major verzi 9.0. Hlavní novinku jsou paralelní vlákna (Parallel Threads).
Před šesti týdny bylo oznámeno, že Qualcomm kupuje Arduino. Minulý týden byly na stránkách Arduina aktualizovány podmínky používání a zásady ochrany osobních údajů. Objevily se obavy, že by otevřená povaha Arduina mohla být ohrožena. Arduino ubezpečuje, že se nic nemění a například omezení reverzního inženýrství v podmínkách používání se týká pouze SaaS cloudové aplikace.
Knihovna libpng, tj. oficiální referenční knihovna grafického formátu PNG (Portable Network Graphics), byla vydána ve verzi 1.6.51. Opraveny jsou 4 bezpečnostní chyby obsaženy ve verzích 1.6.0 (vydána 14. února 2013) až 1.6.50. Nejvážnější z chyb CVE-2025-65018 může vést ke spuštění libovolného kódu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 159 (pdf).
Hru Warhammer: Vermintide 2 (ProtonDB) lze na Steamu získat zdarma napořád, když aktivaci provedete do pondělí 24. listopadu.
Virtualizační software Xen (Wikipedie) byl vydán v nové verzi 4.21. Podrobnosti v poznámkách k vydání a přehledu nových vlastností.
Evropská komise schválila český plán na poskytnutí státní pomoci v objemu 450 milionů eur (téměř 11 miliard Kč) na rozšíření výroby amerického producenta polovodičů onsemi v Rožnově pod Radhoštěm. Komise o tom informovala v dnešní tiskové zprávě. Společnost onsemi by podle ní do nového závodu v Rožnově pod Radhoštěm měla investovat 1,64 miliardy eur (téměř 40 miliard Kč).
Microsoft v příspěvku na svém blogu věnovaném open source oznámil, že textové adventury Zork I, Zork II a Zork III (Wikipedie) jsou oficiálně open source pod licencí MIT.
První prosincový týden proběhne SUSE Hack Week 25. Zaměstnanci SUSE mohou věnovat svůj pracovní čas libovolným open source projektům, například přidání AI agenta do Bugzilly, implementaci SSH v programovacím jazyce Zig nebo portaci klasických her na Linux. Připojit se může kdokoli.
OS: 2.6.18-128.1.10.el5PAE i686 Linux
Java: 1.6.0_16
Tomcat: 6.0.18 (s parametry: -XX:MaxPermSize=512m -Xms512m -Xmx512m -server)
PostgreSQL: 8.1.11-1.el5_1.1
Představte si situaci, kdy v Tomcatu je nasazena aplikace (obyč webová aplikace se Springem, Hibernatem, JSF, komponentami od Infragistics (přesné verze mohu asi dohledat)) připojující se do Postgresu. Tohle si jen tak žije, nikdo na to nešahá a stejně tam dle visualvm vznikají periodicky nějaké objekty. Po chvíli je většina z nich odklizena garbage collectorem (=v grafu využití heapu vznikne tzv. pila naznačující nějaký leak). A takhle se to stále opakuje, ale postupně (pomalu) vzrůstá využití heapu. Jestli jsem dobře koukal, tak tam postupně vznikají integery. Nakonec to (po pár dnech) skončí na nedostatku paměti (heap má 512MB).
Problému se dá předejít vynucením GC z připojeného visualvm. Ten pak uklidí heap na stav po spuštění aplikace.
A nyní bych měl dvě otázky. Jak zjistit, kdo je "autorem" problematických objektů? Dá se to? Nejsem java guru a tohle mám před sebou jako černou skříňku, která zlobí :)
A případně, dá se nějakými konfiguračními volbami donutit GC k tomu, aby se čas od času spustil v módu jako se provede z visulavm a uklidil všechno, co uklidit může? Prozatím mi uniká, že samovolně tohle nedokáže a tomcat nakonec skončí jako nepoužitelný, i když to uklidit lze.
Předem děkuji za jakékoliv podněty, třebas jen ke studiu, pač googlu jsem zatím nedokázal položit správný dotaz.
-XX:+PrintGCDetails, -XX:+PrintGCTimeStamps, pro hrubší sledování jinfo -gcutil).OutOfMemory si nechte dumpnout heap (-XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=/home/ladicek/work/dumps). Případně si ho dumpněte ručně, VisualVM by to mohl umět, případně jmap.-XX:MaxPermSize=128M) a modlete se.Používám javu od SUNu, žádný klon.
Co se týká provedení dumpu v momentě, kdy "dojde paměť", tak visualvm provede nejdřív ten svůj GC a vyčistí paměť, takže se nic nedozvíme. Ale kamarád už našel ještě jiný způsob, ale o tom ještě tolik nevím.
Co se týká db, dělá je tomcat a s tím snad problém není.
Pády jsou náhodné, prostě i bez využívání aplikace a serveru prostě po nějaké chvíli paměť dojde. Přesnou vyjímku dodám, jen co ji najdu :)
Co se týká toho, že gc hlásí out-of-memory, když nestíhá, tak to vím. Ale ten stroj nic jiného nedělá, load tam není žádný, ale prostě jsou tam "negarbagecollectovatelné" objekty, které se snažím nějak identifikovat. Děkuji za tip s finalizací. Zkusím využít všechny návrhy a něco zjistit.
Tiskni
Sdílej: