- aaron blogja
- A hozzászóláshoz be kell jelentkezni
- 1006 megtekintés
Hozzászólások
Azt tudom, hogy a lapozás előtt már divat a tömörített köztes tár, de nincs tervben valami memória deduplikáció akár Linux akár más OS-ek esetén? Vagy ezt is csak úgy lenne érdemes, ha lenne hw támogatás, ahogy magához a lapozáshoz is?
Színes vászon, színes vászon, fúj!
Kérem a Fiátot..
- A hozzászóláshoz be kell jelentkezni
Érdekes a téma, amit felvetsz.
Ezt találtam: https://download.vusec.net/papers/dedup-est-machina_sp16.pdf
Memory deduplication, a well-known technique to reduce the memory footprint across virtual machines, is now also a default-on feature inside the Windows 8.1 and Windows 10 operating systems. Deduplication maps multiple identical copies of a physical page onto a single shared copy with copy-on-write semantics.
Tehát csomó helyen implementálva van, nem is tudtam.
https://forums.docker.com/t/does-docker-container-disable-the-memory-de… - a Docker valószínű nem csinálja.
- A hozzászóláshoz be kell jelentkezni
Én is leragadtam annál, hogy tömöríteni tud a Windows. A docker-nél viszont pont jól jönne ilyesmi.
Színes vászon, színes vászon, fúj!
Kérem a Fiátot..
- A hozzászóláshoz be kell jelentkezni
Windows 10-ben már lassan 10 éve működik:
- A hozzászóláshoz be kell jelentkezni
Pár éve amikor új gépet vettem 128gb rakattam bele. Nem azért, mert kell, hanem ha elromlik egy modul akkor pótlás nélkül kidobom.
- A hozzászóláshoz be kell jelentkezni
Erre én tartok egy kb. azonos erősségű laptopot. Abban alapból volt 64 GB RAM. Ha bármelyikkel gond van, használom a másikat :)
- A hozzászóláshoz be kell jelentkezni
Épp nézegettem ~100K Ft lenne relatíve olcsó DDR4 Kingston RAMból. És nekem még szükségem is lenne rá virtuális zongorám hangmintáihoz. Jobban megéri mint küzdeni pcie 5 nvme ssd-vel.
"antiegalitarian, antiliberal, antidemocratic, and antipopular"
- A hozzászóláshoz be kell jelentkezni
Az mondjuk durva, annyira azért nem olcsó, hogy redundanciából kimaxolja az ember. A kolléga felhasználására viszont a 64 giga nem overkill. Átlag felhasználásra az lenne, arra elég a 16-32 giga, bár nagyban függ, hogy ki mit használ, hány ablakot és fület tart megnyitva, mennyit hajlandó bezárni.
Nekem már 8 éve van 16 giga minden gépbe, de minimalizmus felé mentem, még egyre inkább sok is. Laptopban még úgy is elég, hogy levesz az integrált GPU is max. 2 gigát, de csak csúcsjáraton, alapból csak kb. felet. Javarészt pehelysúlyú ablakkezelő, terminálos alkalmazások kombó mellett hegyekben áll a sok szabad memória, jelenleg is 10,5 giga free, 13 giga available, a rendszer se használ ennyit cache-nek, egy részét tmpfs ramdrive-nak is hasznosítom. Sose mentem még ebben a felállásban 10 giga fölé, max. csak akkor, ha valami memory leak-et kapott. Nincs swap se, nem használná a rendszer. Viszont ha játékra vennék új gépet, abba 32 gigát tennék, azok nagyon memóriaéhesek lettek újabban, szeretnek 16 gigába pont nem beleférni, meg igazából a 32 se drága már, jövőtállósításnak megérheti nem kicentizni.
Ezt mindenkinek saját magának kell tudni, hogy mennyi a memóriaszükséglete, de azt érteni kell, hogy egy szinten túltolni csak pénzégetés, pótcselekvés, mert semmi nem lesz tőle gyorsabb. Arra kell csak törekedni, hogy ne legyen a swap túl intenzíven használva, mert az lassít.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
Az mondjuk durva, annyira azért nem olcsó, hogy redundanciából kimaxolja az ember.
Attól függ, mennyi a kiesés költsége. Desktop gépnél persze nem általában olyan sok, mert ha a 2x32-ből a fele megmakkan, azzal még túl lehet élni, másnap reggelre meg a kezedben van a csere.
De amúgy tökmindegy, ha belefér a büdzsébe, akkor vegyen, ártani nem árt.
Javarészt pehelysúlyú ablakkezelő, terminálos alkalmazások kombó mellett hegyekben áll a sok szabad memória,
Ez nem a minimalizmustól függ, hanem a felhasználástól. Nem az a sok, hogy a desktop környezet 300 vagy 400 mega RAM-ot eszik, hanem mondjuk fejlesztésnél ha beindítom a teljes tesztkörnyezetet, az 30 giga
Ha nem használod semmire a gépet, akkor nem kell a RAM, valóban :)
egy szinten túltolni csak pénzégetés, pótcselekvés, mert semmi nem lesz tőle gyorsabb
Jah, csak érted, az a szint nem egy objektív, univerzális igazság. Tök jó, hogy a karakteres faszságoknak elég pár száz mega, csak mondjuk ha nem ez a munkád, hanem Premiere pro-ban vágod a 4K nyersanyagot, akkor hirtelen nagyon nagyon kevés lesz a 8-16 giga.
- A hozzászóláshoz be kell jelentkezni
Igen, azért mondtam, hogy felhasználásfüggő, bár ilyen 128-256 giga az már nem gyorsít semmin, akkor se ha az isten nyersanyagát vágod 8K-ban Premier Pro-ban. A szint mindenkinek változik, hogy hol elég, de egy szinten túl mindenkinek csak pótcselekvés, mert ha van elég szabad RAM, onnan már egy dekát nem fog gyorsítani, ha még több áll kihasználatlanul.
Én már a 16 gigát is csak úgy tudom kihasználni, hogy tmpfs ramdrive-nak be van fogva, a kernel cache-nek használja, meg a böngészőcache is itt van, iGPU is használja VRAM-nak, meg egy DRAM-less NVMe SSD is DDR cache-nek, így végül is pocsékba nem megy. Még talán a 32-vel is tudnék valamit kezdeni (nagyobb kódbázisok fordításánál, mikor sok szálon pörget a make, akkor nem árt szálanként 2 giga RAM, meg ha az ember nagy rakás virtuális gépet, emulátort, konténert futtat), bár azt már nem használnám ki, de talán teljesen pocsékba se menne. 64-gyel és felette én már nem tudnék mit kezdeni, még bloat GUI megoldásokat használva sem, nyilván ez az én felhasználásomra igaz.
Átlag felhasználásnál még akár a ZRAM, Zswap is játszik, bár azt inkább annak ajánlom, akinek odaforrasztott RAM van a gépében, nem tudja bővíteni, de ki akarja tolni a használhatóságot.
A túl sok memória egy szinten túl épp úgy nem segít, mint a túl sok magos proci. Ha az embernek olyan a felhasználása, hogy nem párhuzamosítható, akkor még árt is a túl sok mag, mert a cache már nem használódik ki, de a túl sok mag csak alacsonyabb frekit bír, és még lassabb is lesz az egész (bár nem érezhetően, inkább csak szintetikus benchmarkokban mérhetően), mint egy kevesebb magos, de nagyobb frekis proci, aminek még az összfogyasztása is jobb lesz. Level1Tech-nek volt erről pár videója, hogy használja a 128 meg 196 magos Epyc procikat, amik 256 és 384 szálasak, elindítja a cuccait, játékokat, a magok nagyja ott unatkozik kihasználatlanul.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
most 10 giga ramot használ(sz), miért swappolt?
- A hozzászóláshoz be kell jelentkezni
Az az állapot a gép indulása után volt lényegében. Gyakori, hogy 4-5 web stack fut egyszerre nem olyan kicsi adatbázisokkal, 2 böngésző, PhpStorm, Thunderbird, stb.
total used free shared buff/cache available Mem: 62Gi 21Gi 29Gi 4.6Gi 17Gi 41Gi Swap: 23Gi 256Ki 23Gi
Már így fest, pedig csak 2 óra telt el a munkanapból, s csak 2 projekt fut.
- A hozzászóláshoz be kell jelentkezni
ez is "csak" 21 Gi, ennek bele kellene férnie 32 G-be is
most nem a memória bővítés ellen beszélek, én is múlt héten dupláztam itthon a memóriát a nasomban
- A hozzászóláshoz be kell jelentkezni
Hetekig megy az asztali gép, nem így szokott kinézni. (Docker/DDEV) projektet meg nem szívesen állítok le. Munkaeszköz, legyen ott készen, amikor épp dolgozni kell vele.
Azon kívül FS cache is van a memóriában, ha a fele üres (lenne), akkor is érdemes lett volna.
- A hozzászóláshoz be kell jelentkezni
total used free shared buff/cache available Mem: 62Gi 27Gi 7.1Gi 5.6Gi 33Gi 34Gi Swap: 23Gi 32Mi 23Gi
Nap végére így néz ki.
ps x --sort rss | tail -n 4 5062 pts/2 Sl+ 58:29 /home/aaron/firefox/firefox-bin 95181 ? Sl 1:26 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j2.formatMsgNoLookups=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -Djava.security.manager=allow -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-2398819568313323609 -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -Des.cgroups.hierarchy.override=/ -Xms512m -Xmx512m -XX:MaxDirectMemorySize=268435456 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.path.home=/usr/share/elasticsearch -Des.path.conf=/usr/share/elasticsearch/config -Des.distribution.flavor=default -Des.distribution.type=docker -Des.bundled_jdk=true -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -Ebootstrap.memory_lock=true -Ecluster.name=docker-cluster -Ediscovery.type=single-node 7499 ? Sl 1:59 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j2.formatMsgNoLookups=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -Djava.security.manager=allow -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-5459826251394555382 -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -Des.cgroups.hierarchy.override=/ -Xms512m -Xmx512m -XX:MaxDirectMemorySize=268435456 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.path.home=/usr/share/elasticsearch -Des.path.conf=/usr/share/elasticsearch/config -Des.distribution.flavor=default -Des.distribution.type=docker -Des.bundled_jdk=true -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -Ebootstrap.memory_lock=true -Ecluster.name=docker-cluster -Ediscovery.type=single-node 24139 ? Ssl 94:19 /home/aaron/storm/jbr/bin/java -classpath /home/aaron/storm/lib/platform-loader.jar:/home/aaron/storm/lib/util-8.jar:/home/aaron/storm/lib/util.jar:/home/aaron/storm/lib/app-client.jar:/home/aaron/storm/lib/util_rt.jar:/home/aaron/storm/lib/product.jar:/home/aaron/storm/lib/opentelemetry.jar:/home/aaron/storm/lib/app.jar:/home/aaron/storm/lib/product-client.jar:/home/aaron/storm/lib/lib-client.jar:/home/aaron/storm/lib/stats.jar:/home/aaron/storm/lib/jps-model.jar:/home/aaron/storm/lib/external-system-rt.jar:/home/aaron/storm/lib/rd.jar:/home/aaron/storm/lib/bouncy-castle.jar:/home/aaron/storm/lib/protobuf.jar:/home/aaron/storm/lib/forms_rt.jar:/home/aaron/storm/lib/lib.jar:/home/aaron/storm/lib/externalProcess-rt.jar:/home/aaron/storm/lib/groovy.jar:/home/aaron/storm/lib/annotations.jar:/home/aaron/storm/lib/jsch-agent.jar:/home/aaron/storm/lib/junit4.jar:/home/aaron/storm/lib/nio-fs.jar:/home/aaron/storm/lib/trove.jar -XX:ErrorFile=/home/aaron/java_error_in_phpstorm_%p.log -XX:HeapDumpPath=/home/aaron/java_error_in_phpstorm_.hprof -Xms128m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:+IgnoreUnrecognizedVMOptions -ea -Dsun.io.useCanonCaches=false -Dsun.java2d.metal=true -Djbr.catch.SIGABRT=true -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Dkotlinx.coroutines.debug=off -XX:CICompilerCount=2 -XX:ReservedCodeCacheSize=512m -XX:+UnlockDiagnosticVMOptions -XX:TieredOldPercentage=100000 -Dsun.tools.attach.tmp.only=true -Dawt.lock.fair=true -Xmx3989m -Djb.vmOptionsFile=/home/aaron/.config/JetBrains/PhpStorm2024.2/phpstorm64.vmoptions -Djava.system.class.loader=com.intellij.util.lang.PathClassLoader -Didea.vendor.name=JetBrains -Didea.paths.selector=PhpStorm2024.2 -Djna.boot.library.path=/home/aaron/storm/lib/jna/amd64 -Dpty4j.preferred.native.folder=/home/aaron/storm/lib/pty4j -Djna.nosys=true -Djna.noclasspath=true -Dintellij.platform.runtime.repository.path=/home/aaron/storm/modules/module-descriptors.jar -Didea.platform.prefix=PhpStorm -Dide.show.tips.on.startup.default.value=true -Dsplash=true -Daether.connector.resumeDownloads=false --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/jdk.internal.vm=ALL-UNNAMED --add-opens=java.base/sun.net.dns=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.fs=ALL-UNNAMED --add-opens=java.base/sun.security.ssl=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing.plaf.gtk=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt.image=ALL-UNNAMED --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens=java.desktop/sun.awt=ALL-UNNAMED --add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED --add-opens=java.desktop/sun.awt.datatransfer=ALL-UNNAMED --add-opens=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.desktop/sun.font=ALL-UNNAMED --add-opens=java.desktop/sun.java2d=ALL-UNNAMED --add-opens=java.desktop/sun.swing=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED --add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-opens=jdk.jdi/com.sun.tools.jdi=ALL-UNNAMED -Xbootclasspath/a:/home/aaron/storm/lib/nio-fs.jar:/home/aaron/storm/lib/nio-fs.jar:/home/aaron/storm/lib/nio-fs.jar com.intellij.idea.Main
A legéhesebb processzek...
- A hozzászóláshoz be kell jelentkezni
Ha jol latom, a fele RAM-ot a processzek nevei +inditaskori parameterei viszik el.. hulye Java
A strange game. The only winning move is not to play. How about a nice game of chess?
- A hozzászóláshoz be kell jelentkezni