[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Linux Resourcenverwaltung
[Thread Prev] | [Thread Next]
[Date Prev] | [Date Next]
- Subject: Re: Linux Resourcenverwaltung
- From: Werner Holtfreter <Holtfreter@xxxxxx>
- Date: Sat, 01 Dec 2012 00:08:43 +0100
- To: uugrn@xxxxxxxxxxxxxxx
Am Freitag, den 30.11.2012, 03:39 +0100 schrieb Alexander Holler: > Am 30.11.2012 00:38, schrieb Werner Holtfreter: > > Ich habe jetzt sehr viel getestet, um die minimal erforderliche > > Speicherzuweisung zu ermitteln. > > > > Mit 23 MB lief "dd if=$historyint of=$historyext bs=1M" > > 35 x stabil mit einer kompletten Festplatte durch. > > > > Aber merkwuerdiger Weise gibt es keine feste Grenze. Geringere > > RAM-Freigabe fuehrt nur *manchmal* zum vorzeitigen Abbruch, nach > > unterschiedlich langer Laufzeit. > > > > Ganz unerklaerlich ist mir, weshalb 23 MB gebraucht werden. Vorstellen > > koennte ich mir je 1 MB fuer Eingabepuffer, Ausgabepuffer und Programm. > > Aber wozu 23 MB? 23 x der RAM-Groesse, von der B.G. meinte, sie wuerde fuer > > alle Zeit reichen. Hier geht es nur um einen Kopierbefehl! > > Ich bezweifle, dass dir jemand bei dieser Informationsfuelle auch nur > irgendetwas annaehernd zutreffendes sagen kann. Was ist ein vorzeitiger > Abbruch? Was ist Quelle (HW, FS)? Was ist Ziel (HW, FS)? Welcher Kernel? > Welche Einschraenkungen (nur Userland oder auch Kernelspeicher)? ...? 3.0.0-27-generic #44-Ubuntu Kopie von SATA-Platte zu SATA-Platte ReiserFS auf Systemplatte und Quell und Zielplatte (fuer die letzten beiden Platten irrelelevant, da dd das Dateisystem nicht beachtet) Ich fuege unten an: den Aufruf des Scripts das Script das syslog der Sekunde des Abbruchs Um den Abbruch zu bewirken, habe ich den RAM auf 4 MB begrenzt. dd lief immerhin 2 min lang. Unter identischen Bedingungen lief der Kopiervorgang beim naechsten Versuch 29 min. > Du musst das nicht wirklich beantworten, aber alleine schon die Frage > nach dem FS liefert Dir evtl. einen Hinweis, wofuer zumindest ein Teil > des RAM gebraucht wird. Dein Aufruf von dd schaufelt die Daten nur in > Bloecken von 1MB von irgendwoher nach irgendwohin. Mehr ist dem nicht zu > entnehmen und viel mehr kann dd auch nicht. Du kannst dir auch mal > ueberlegen, was passiert, wenn das Schreiben langsamer geht als das > Lesen. dd hat auch keinerlei Ahnung von Geschwindigkeiten, das schaufelt > einfach nur so lange es etwas lesen kann und das Ziel (im uebertragenen > Sinne) nicht "Halt" oder "Pause" schreit. Speichermangel scheint ja "Pause" zu generieren, denn wird der RAM nicht begrenzt, steigt die buffer-Belegung binnen Sekunden auf die Groessenordung von 1 GB, bei Begrenzung aber nicht. > Und zu dem Hinweis bzgl. den 640KB von B.G. kann man nur sagen, dass die > heutzutage schon locker mit den Dateinamen aller Dateien mancher > Verzeichnisse fuellen kannst Ich bin nicht der erste, der die dramatisch unterschiedliche Wachstumsgeschwindigkeit der vorhandenen und benoetigten(!) Hardware-Leistung und ihrem Nutzwert in der Bueroumgebung thematisiert. Das damit einhergehende Unbehagen liesse sich vielleicht mildern, wenn man die Ursachen erahnen wuerde. Mehr als erahnen ueberfordert mich. So erschien mir obige simple Kopiervorgang geeignet, exemplarisch zu erfragen, woher der gewaltige Resourcenbedarf kommt. Viele werden sagen, was kuemmern dich die 23 MB, das ist nur 1 % deines RAM. Offenbar denken auch Programmierer so, mit der geschilderten Folge. Abgesehen davon koennte der Speicherbedarf auch auf ein unerkanntes Problem hindeuten, daher liefere ich nun doch genauere Infos nach. Viele Gruesse Werner Holtfreter ############################### Aufruf des Scripts ############################### root@zuse:~# time /home/werner/Dokumente/Computer/scripte/backuptest2 /home/werner/Dokumente/Computer/scripte/backuptest2: Zeile 11: 8083 Getoetet dd if=/dev/sdb of=/dev/sdc bs=1M real 1m49.097s user 0m0.048s sys 1m8.160s root@zuse:~# ############################### Script ############################### #! /bin/bash -e mkdir /cgroup || true mount -t cgroup -o memory nodev /cgroup || true mkdir /cgroup/memlimit || true cd /cgroup/memlimit/ echo 4M > memory.limit_in_bytes dd if=/dev/sdb of=/dev/sdc bs=1M & echo $! > tasks wait cd .. rmdir memlimit/ cd / umount /cgroup rm -rf /cgroup beep -r 3 ############################### syslog der Sekunde des Abbruchs ############################### dd invoked oom-killer: gfp_mask=0xd0, order=0, oom_adj=0, oom_score_adj=0 dd cpuset=/ mems_allowed=0 Pid: 8060, comm: dd Tainted: P 3.0.0-27-generic #44-Ubuntu Call Trace: [<ffffffff810b57fd>] ? cpuset_print_task_mems_allowed+0x9d/0xb0 [<ffffffff8110dbc1>] dump_header+0x91/0xe0 [<ffffffff8110df25>] oom_kill_process+0x85/0xb0 [<ffffffff8110dffb>] mem_cgroup_out_of_memory+0xab/0xf0 [<ffffffff811624fa>] mem_cgroup_handle_oom+0x27a/0x2b0 [<ffffffff8115da50>] ? mc_handle_file_pte+0x120/0x120 [<ffffffff81162654>] mem_cgroup_do_charge+0x124/0x150 [<ffffffff811627b3>] __mem_cgroup_try_charge+0x133/0x360 [<ffffffff81163a8a>] mem_cgroup_cache_charge+0x12a/0x180 [<ffffffff8110ae19>] add_to_page_cache_locked+0x49/0x90 [<ffffffff811168d8>] ? __lru_cache_add+0x68/0x90 [<ffffffff8110ae8f>] add_to_page_cache_lru+0x2f/0x80 [<ffffffff81115406>] read_pages+0xd6/0x100 [<ffffffff81115593>] __do_page_cache_readahead+0x163/0x180 [<ffffffff81115901>] ra_submit+0x21/0x30 [<ffffffff81115a25>] ondemand_readahead+0x115/0x230 [<ffffffff811420c0>] ? swap_entry_free+0x140/0x1b0 [<ffffffff81115c21>] page_cache_sync_readahead+0x31/0x50 [<ffffffff8110b5b6>] do_generic_file_read.constprop.36+0x2b6/0x440 [<ffffffff8110c4df>] generic_file_aio_read+0xef/0x280 [<ffffffff81130bf1>] ? handle_pte_fault+0x1b1/0x210 [<ffffffff81169022>] do_sync_read+0xd2/0x110 [<ffffffff81286203>] ? security_file_permission+0x93/0xb0 [<ffffffff81169361>] ? rw_verify_area+0x61/0xf0 [<ffffffff81169840>] vfs_read+0xb0/0x180 [<ffffffff8116995a>] sys_read+0x4a/0x90 [<ffffffff815ffe82>] system_call_fastpath+0x16/0x1b Task in /memlimit killed as a result of limit of /memlimit memory: usage 3072kB, limit 3072kB, failcnt 3095 memory+swap: usage 3704kB, limit 9007199254740991kB, failcnt 0 Mem-Info: Node 0 DMA per-cpu: CPU 0: hi: 0, btch: 1 usd: 0 CPU 1: hi: 0, btch: 1 usd: 0 Node 0 DMA32 per-cpu: CPU 0: hi: 186, btch: 31 usd: 137 CPU 1: hi: 186, btch: 31 usd: 87 active_anon:185957 inactive_anon:63857 isolated_anon:0 active_file:78921 inactive_file:15211 isolated_file:0 unevictable:4 dirty:0 writeback:703 unstable:0 free:336624 slab_reclaimable:11153 slab_unreclaimable:6284 mapped:36794 shmem:1659 pagetables:7412 bounce:0 Node 0 DMA free:15776kB min:236kB low:292kB high:352kB active_anon:0kB inactive_anon:40kB active_file:4kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15684kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:8kB slab_unreclaimable:72kB kernel_stack:8kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no lowmem_reserve[]: 0 2886 2886 2886 Node 0 DMA32 free:1330720kB min:44816kB low:56020kB high:67224kB active_anon:743828kB inactive_anon:255388kB active_file:315680kB inactive_file:60844kB unevictable:16kB isolated(anon):0kB isolated(file):0kB present:2956204kB mlocked:16kB dirty:0kB writeback:2812kB mapped:147176kB shmem:6636kB slab_reclaimable:44604kB slab_unreclaimable:25064kB kernel_stack:3040kB pagetables:29648kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no lowmem_reserve[]: 0 0 0 0 Node 0 DMA: 10*4kB 7*8kB 6*16kB 7*32kB 10*64kB 7*128kB 6*256kB 6*512kB 5*1024kB 2*2048kB 0*4096kB = 15776kB Node 0 DMA32: 15926*4kB 23727*8kB 13941*16kB 6486*32kB 3067*64kB 1150*128kB 354*256kB 149*512kB 55*1024kB 27*2048kB 6*4096kB = 1330720kB 96042 total pagecache pages 247 pages in swap cache Swap cache stats: add 11337, delete 11090, find 6616/8105 Free swap = 2059712kB Total swap = 2061308kB 753376 pages RAM 13717 pages reserved 189672 pages shared 333984 pages non-shared [ pid ] uid tgid total_vm rss cpu oom_adj oom_score_adj name [ 8060] 0 8060 3463 175 0 0 0 dd Memory cgroup out of memory: Kill process 8060 (dd) score 1 or sacrifice child Killed process 8060 (dd) total-vm:13852kB, anon-rss:108kB, file-rss:592kB dd invoked oom-killer: gfp_mask=0xd0, order=0, oom_adj=0, oom_score_adj=0 dd cpuset=/ mems_allowed=0 Pid: 8083, comm: dd Tainted: P 3.0.0-27-generic #44-Ubuntu Call Trace: [<ffffffff810b57fd>] ? cpuset_print_task_mems_allowed+0x9d/0xb0 [<ffffffff8110dbc1>] dump_header+0x91/0xe0 [<ffffffff8110df25>] oom_kill_process+0x85/0xb0 [<ffffffff8110dffb>] mem_cgroup_out_of_memory+0xab/0xf0 [<ffffffff811624fa>] mem_cgroup_handle_oom+0x27a/0x2b0 [<ffffffff8115da50>] ? mc_handle_file_pte+0x120/0x120 [<ffffffff81162654>] mem_cgroup_do_charge+0x124/0x150 [<ffffffff811627b3>] __mem_cgroup_try_charge+0x133/0x360 [<ffffffff81163a8a>] mem_cgroup_cache_charge+0x12a/0x180 [<ffffffff8110ae19>] add_to_page_cache_locked+0x49/0x90 [<ffffffff811168d8>] ? __lru_cache_add+0x68/0x90 [<ffffffff8110ae8f>] add_to_page_cache_lru+0x2f/0x80 [<ffffffff81115406>] read_pages+0xd6/0x100 [<ffffffff81115593>] __do_page_cache_readahead+0x163/0x180 [<ffffffff81115901>] ra_submit+0x21/0x30 [<ffffffff81115a25>] ondemand_readahead+0x115/0x230 [<ffffffff81115c21>] page_cache_sync_readahead+0x31/0x50 [<ffffffff8110b5b6>] do_generic_file_read.constprop.36+0x2b6/0x440 [<ffffffff8110c4df>] generic_file_aio_read+0xef/0x280 [<ffffffff81130bf1>] ? handle_pte_fault+0x1b1/0x210 [<ffffffff81169022>] do_sync_read+0xd2/0x110 [<ffffffff81286203>] ? security_file_permission+0x93/0xb0 [<ffffffff81169361>] ? rw_verify_area+0x61/0xf0 [<ffffffff81169840>] vfs_read+0xb0/0x180 [<ffffffff8116995a>] sys_read+0x4a/0x90 [<ffffffff815ffe82>] system_call_fastpath+0x16/0x1b Task in /memlimit killed as a result of limit of /memlimit memory: usage 4096kB, limit 4096kB, failcnt 1584935 memory+swap: usage 4500kB, limit 9007199254740991kB, failcnt 0 Mem-Info: Node 0 DMA per-cpu: CPU 0: hi: 0, btch: 1 usd: 0 CPU 1: hi: 0, btch: 1 usd: 0 Node 0 DMA32 per-cpu: CPU 0: hi: 186, btch: 31 usd: 117 CPU 1: hi: 186, btch: 31 usd: 165 active_anon:183747 inactive_anon:63887 isolated_anon:0 active_file:92891 inactive_file:1453 isolated_file:0 unevictable:4 dirty:0 writeback:888 unstable:0 free:338604 slab_reclaimable:11151 slab_unreclaimable:6283 mapped:36783 shmem:1643 pagetables:7435 bounce:0 Node 0 DMA free:15776kB min:236kB low:292kB high:352kB active_anon:0kB inactive_anon:40kB active_file:4kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15684kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:8kB slab_unreclaimable:72kB kernel_stack:8kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no lowmem_reserve[]: 0 2886 2886 2886 Node 0 DMA32 free:1338640kB min:44816kB low:56020kB high:67224kB active_anon:734988kB inactive_anon:255508kB active_file:371560kB inactive_file:5812kB unevictable:16kB isolated(anon):0kB isolated(file):0kB present:2956204kB mlocked:16kB dirty:0kB writeback:3552kB mapped:147132kB shmem:6572kB slab_reclaimable:44596kB slab_unreclaimable:25060kB kernel_stack:3040kB pagetables:29740kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no lowmem_reserve[]: 0 0 0 0 Node 0 DMA: 10*4kB 7*8kB 6*16kB 7*32kB 10*64kB 7*128kB 6*256kB 6*512kB 5*1024kB 2*2048kB 0*4096kB = 15776kB Node 0 DMA32: 17976*4kB 23631*8kB 13949*16kB 6490*32kB 3069*64kB 1151*128kB 354*256kB 149*512kB 55*1024kB 27*2048kB 6*4096kB = 1338664kB 96255 total pagecache pages 270 pages in swap cache Swap cache stats: add 12093, delete 11823, find 6980/8505 Free swap = 2059848kB Total swap = 2061308kB 753376 pages RAM 13717 pages reserved 187062 pages shared 331870 pages non-shared [ pid ] uid tgid total_vm rss cpu oom_adj oom_score_adj name [ 8083] 0 8083 3463 210 0 0 0 dd Memory cgroup out of memory: Kill process 8083 (dd) score 1 or sacrifice child Killed process 8083 (dd) total-vm:13852kB, anon-rss:248kB, file-rss:592kB -- UUGRN e.V. http://www.uugrn.org/ http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/