{"thread":{"id":"29106","subject":"[linux@arm.linux.org.uk: Re: [GIT PULL] Identity mapping changes for 3.3]","startedAt":"2011-12-07T20:06:40Z","lastAt":"2011-12-07T20:06:40Z","messageCount":1,"participants":["Uwe Kleine-König"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"180521","messageId":"20111207200640.GK4585@pengutronix.de","threadId":"29106","inReplyTo":null,"subject":"[linux@arm.linux.org.uk: Re: [GIT PULL] Identity mapping changes for 3.3]","fromName":"Uwe Kleine-König","fromEmail":"u.kleine-koenig@pengutronix.de","sentAt":"2011-12-07T20:06:40Z","receivedAt":"2011-12-07T20:06:40Z","isPatch":false,"sender":{"key":"u.kleine-koenig@pengutronix.de","avatar":"https://gravatar.com/avatar/354b5e3ceb2806a2f1e1e382ac29ddbdad18288654da62b61eb13583a857eee7?d=mp&s=160"},"body":"Hello,\n\nJust FYI ...\n\nBest regards\nUwe\n\n----- Forwarded message from Russell King - ARM Linux <linux@arm.linux.org.uk> -----\n\nDate: Wed, 7 Dec 2011 19:48:26 +0000\nFrom: Russell King - ARM Linux <linux@arm.linux.org.uk>\nTo: Nicolas Pitre <nico@fluxnic.net>\nCc: Will Deacon <will.deacon@arm.com>, \"linux-arm-kernel@lists.infradead.org\" <linux-arm-kernel@lists.infradead.org>\nSubject: Re: [GIT PULL] Identity mapping changes for 3.3\nMessage-ID: <20111207194826.GB14542@n2100.arm.linux.org.uk>\n\nOn Tue, Dec 06, 2011 at 11:25:47PM -0500, Nicolas Pitre wrote:\n> Make sure the repo on that machine is nicely packed.  Running \"git gc\" \n> (gc as in garbage collect) once in a while is a good thing to do, \n> especially that you now have the smart HTTP protocol enabled.  That will \n> bring the memory usage way down, and serving requests will be much \n> faster too.  It is safe to put that in a cron job once a week or so, \n> even if concurrent requests are being serviced.\n\nWell, I tried an experiment.  On my laptop, if I run git fsck, it takes\naround about 20 minutes to complete.\n\nOn ZenIV, I started this, this morning:\n\n$ GIT_DIR=linux-2.6-arm.git git fsck\n\nand it's now (this evening) some 10 hours after, its still going.  This\nis the exact same repository (as it's an rsync'd copy of the git objects\nand packs which are on the laptop.)\n\n$ ps aux | grep git\nUSER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND\nrmk      26731  1.4  1.0 382716 22036 pts/71   D+   08:37   9:13 git fsck\napache   29810  1.0 10.0 793288 206564 ?       Sl   09:24   6:09 git pack-objects --revs --all --stdout --progress --delta-base-offset\napache   30923  1.0 10.0 790560 206260 ?       Sl   09:39   5:53 git pack-objects --revs --all --stdout --progress --delta-base-offset\n\nSo, it's consumed 9h of CPU time, the git pack-objects have taken some\n5-6 hours...\n\n$ vmstat 10\nprocs ------------memory---------- ---swap-- -----io---- --system-- -----cpu-----\n r  b    swpd   free   buff  cache   si   so    bi    bo   in   cs  us sy id wa st\n 0  4 2502200  45568   8252 125912   50   16    37    62    1    1  1  1 91  7  0\n 0  4 2502068  46056   8176 126016   44    0 23858     9 2231 1216  1  4  1 94  0\n 0  4 2501724  45100   8188 126764   76    0 22160     6 2269 1196  1  4  4 91  0\n\n$ iostat 10\n...\navg-cpu:  %user   %nice %system %iowait  %steal   %idle\n           0.88    0.00    4.10   91.71    0.00    3.32\n\nDevice:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn\nsdf               1.20        10.40         4.80        104         48\nsde               0.70        16.00         0.00        160          0\nsdd              16.00       432.00        90.40       4320        904\nsdg             126.00     12614.40         0.00     126144          0\nmd0               3.90        26.40         4.80        264         48\nsda             139.90     12292.80         0.00     122928          0\nsdb             136.10     12393.60         0.00     123936          0\nsdc             113.70     12238.40         0.00     122384          0\nmd1             628.20     49643.20         0.00     496432          0\n\nThe repository resides on md1 (sdg, sda, sdb, sdc), the swap partially\non sdd and partially on md0 (sdf and sde).\n\nIf I kill all git processes, the disks fall back to about 2MB/s over 10\nseconds of analysis.\n\nAs you can see, git fsck seems to be pulling data at around 50MB/s,\npresumably for 9 hours - this is rediculous because there's only 500MB\nof git data for it to read!\n\nWhat are the top six users of system memory?\n\nrmk      26731  1.4  1.0 380600 21348 pts/71   D+   08:37   9:17 git fsck\nnamed    30776  0.4  1.4 130804 29212 ?        Ssl  Oct08 386:55 /usr/sbin/named-sdb\nroot      2475  0.6  2.0  58940 41376 ?        S    10:40   3:38 spamd child\nexim      2148  0.0  4.4 160228 91100 ?        Ssl  Jun24 183:50 clamd.exim\napache   29810  1.0 10.2 794312 210816 ?       Sl   09:24   6:27 git pack-objects\napache   30923  1.0 10.3 794656 213536 ?       Sl   09:39   6:10 git pack-objects\n\nand lower down there's the bunch of apache httpd processes.\n\nWhat this is saying to me is that git can't run sensibly on a dual-core\nP4, 3GHz machine with 2G of RAM and 4G swap, with a disk IO subsystem\ncapable of about 50MB/s - basically, git is driving ZenIV into the ground\n(and I believe git was also responsible for ZenIV having a load average\nhitting a few hundred several months ago which resulted in us having to\nhave it rebooted.)\n\nLast bit of information - from /proc/29810/maps:\n0012b000-00148000 r-xp 00000000 08:33 179255     /lib/ld-2.13.so\n00148000-00149000 r--p 0001c000 08:33 179255     /lib/ld-2.13.so\n00149000-0014a000 rw-p 0001d000 08:33 179255     /lib/ld-2.13.so\n0014c000-002cf000 r-xp 00000000 08:33 179409     /lib/libc-2.13.so\n002cf000-002d0000 ---p 00183000 08:33 179409     /lib/libc-2.13.so\n002d0000-002d2000 r--p 00183000 08:33 179409     /lib/libc-2.13.so\n002d2000-002d3000 rw-p 00185000 08:33 179409     /lib/libc-2.13.so\n002d3000-002d6000 rw-p 00000000 00:00 0\n00304000-0031b000 r-xp 00000000 08:33 179711     /lib/libpthread-2.13.so\n0031b000-0031c000 r--p 00016000 08:33 179711     /lib/libpthread-2.13.so\n0031c000-0031d000 rw-p 00017000 08:33 179711     /lib/libpthread-2.13.so\n0031d000-0031f000 rw-p 00000000 00:00 0\n00328000-0033c000 r-xp 00000000 08:33 179755     /lib/libz.so.1.2.5\n0033c000-0033d000 rw-p 00013000 08:33 179755     /lib/libz.so.1.2.5\n006da000-006db000 r-xp 00000000 00:00 0          [vdso]\n08047000-08171000 r-xp 00000000 08:32 600804     /usr/libexec/git-core/git\n08171000-08176000 rw-p 0012a000 08:32 600804     /usr/libexec/git-core/git\n08176000-081be000 rw-p 00000000 00:00 0\n0a06a000-0f1b0000 rw-p 00000000 00:00 0          [heap]\n80a74000-90836000 rw-p 00000000 00:00 0\n986bc000-9a6bc000 r--p 00000000 09:01 106316459  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-895bab46ff2e2e3d88eb2ebb8919a86104e6f59e.pack\n9a6bc000-9c6bc000 r--p 0b000000 09:01 106316459  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-895bab46ff2e2e3d88eb2ebb8919a86104e6f59e.pack\n9c6bc000-9e6bd000 rw-p 00000000 00:00 0\na0330000-a0331000 ---p 00000000 00:00 0\na0331000-a0d31000 rw-p 00000000 00:00 0\na0d31000-a0d32000 ---p 00000000 00:00 0\na0d32000-a1732000 rw-p 00000000 00:00 0\na1e72000-a3e72000 r--p 08000000 09:01 106316459  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-895bab46ff2e2e3d88eb2ebb8919a86104e6f59e.pack\na3e72000-a5e72000 r--p 12000000 09:01 106316459  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-895bab46ff2e2e3d88eb2ebb8919a86104e6f59e.pack\na5e72000-a7e72000 r--p 02000000 09:01 106316459  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-895bab46ff2e2e3d88eb2ebb8919a86104e6f59e.pack\na8732000-a9e72000 r--p 1a000000 09:01 106316459  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-895bab46ff2e2e3d88eb2ebb8919a86104e6f59e.pack\na9e72000-abe72000 r--p 05000000 09:01 106316459  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-895bab46ff2e2e3d88eb2ebb8919a86104e6f59e.pack\nabe72000-ac6fd000 rw-p 00000000 00:00 0\nac6fd000-ae6fd000 r--p 06000000 09:01 106316459  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-895bab46ff2e2e3d88eb2ebb8919a86104e6f59e.pack\nae6fd000-af3fb000 rw-p 00000000 00:00 0\naf946000-af947000 rw-p 00000000 00:00 0\nafb00000-afbb3000 rw-p 00000000 00:00 0\nafbb3000-afc00000 ---p 00000000 00:00 0\nafcc1000-b1652000 rw-p 00000000 00:00 0\nb1800000-b1900000 rw-p 00000000 00:00 0\nb1ae8000-b1af0000 r--p 00000000 09:01 88555537   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-60ee04b368ada02ba788d17a537c71bad7471a7a.idx\nb1af0000-b1af3000 r--p 00000000 09:01 106318826  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-87f106a487c423809976c6868ec7f1e9fc12e676.idx\nb1af3000-b1af6000 r--p 00000000 09:01 88555528   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-1a10fd87008d0e06d2ce83efff9bf4ba7abb12e8.idx\nb1af6000-b1b03000 r--p 00000000 09:01 88555566   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-6ed1c32d2ec8e0cf20c9ef7d8b813e1f63f67203.idx\nb1d00000-b1de8000 rw-p 00000000 00:00 0\nb1de8000-b1e00000 ---p 00000000 00:00 0\nb1e00000-b1e51000 rw-p 00000000 00:00 0\nb1e51000-b1f00000 ---p 00000000 00:00 0\nb1f00000-b1ffe000 rw-p 00000000 00:00 0\nb1ffe000-b2000000 ---p 00000000 00:00 0\nb2000000-b20e5000 rw-p 00000000 00:00 0\nb20e5000-b2100000 ---p 00000000 00:00 0\nb2100000-b21fc000 rw-p 00000000 00:00 0\nb21fc000-b2200000 ---p 00000000 00:00 0\nb2200000-b22fd000 rw-p 00000000 00:00 0\nb22fd000-b2300000 ---p 00000000 00:00 0\nb2300000-b23d7000 rw-p 00000000 00:00 0\nb23d7000-b2400000 ---p 00000000 00:00 0\nb2400000-b24fd000 rw-p 00000000 00:00 0\nb24fd000-b2500000 ---p 00000000 00:00 0\nb2500000-b25ea000 rw-p 00000000 00:00 0\nb25ea000-b2600000 ---p 00000000 00:00 0\nb2600000-b26e4000 rw-p 00000000 00:00 0\nb26e4000-b2700000 ---p 00000000 00:00 0\nb2700000-b27ee000 rw-p 00000000 00:00 0\nb27ee000-b2800000 ---p 00000000 00:00 0\nb2800000-b28ec000 rw-p 00000000 00:00 0\nb28ec000-b2900000 ---p 00000000 00:00 0\nb2900000-b29f3000 rw-p 00000000 00:00 0\nb29f3000-b2a00000 ---p 00000000 00:00 0\nb2b00000-b2cfe000 rw-p 00000000 00:00 0\nb2cfe000-b2d00000 ---p 00000000 00:00 0\nb2d00000-b2dfd000 rw-p 00000000 00:00 0\nb2dfd000-b2e00000 ---p 00000000 00:00 0\nb2f00000-b2ff4000 rw-p 00000000 00:00 0\nb2ff4000-b3000000 ---p 00000000 00:00 0\nb3100000-b31fe000 rw-p 00000000 00:00 0\nb31fe000-b3200000 ---p 00000000 00:00 0\nb3300000-b33f1000 rw-p 00000000 00:00 0\nb33f1000-b3400000 ---p 00000000 00:00 0\nb3500000-b35f6000 rw-p 00000000 00:00 0\nb35f6000-b3600000 ---p 00000000 00:00 0\nb3600000-b36f3000 rw-p 00000000 00:00 0\nb36f3000-b3700000 ---p 00000000 00:00 0\nb3700000-b37f9000 rw-p 00000000 00:00 0\nb37f9000-b3800000 ---p 00000000 00:00 0\nb3900000-b39f3000 rw-p 00000000 00:00 0\nb39f3000-b3a00000 ---p 00000000 00:00 0\nb3b03000-b76ab000 r--p 00000000 09:01 106316443  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-895bab46ff2e2e3d88eb2ebb8919a86104e6f59e.idx\nb76ab000-b76b1000 r--p 00000000 09:01 106316389  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-742507456b81724d4b1b7c62a9c7b1a08dea788c.idx\nb76b1000-b76b3000 r--p 00000000 09:01 88555543   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-01d8e6a80f43c483b170f252a63549c3f3177435.idx\nb76b3000-b76b5000 r--p 00000000 09:01 106316378  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-22db475e3babd502f5462dbd53b0083f63054da8.idx\nb76b5000-b76b7000 r--p 00000000 09:01 106319097  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-81e9156c16956b1ca13d0786f26c57da8a8c4d00.idx\nb76b7000-b76b9000 r--p 00000000 09:01 106316404  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-02bd0e7dcc0d4f9ba1faef6cb90d3080451223ab.idx\nb76b9000-b76be000 r--p 00000000 09:01 106320451  /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-64a9ef29c0dd71c0ada102c21a6d3297715b5ec0.idx\nb76be000-b76c0000 r--p 00000000 09:01 88555532   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-cf138203ddca32052979b5eadc8b03fa8d9f6313.idx\nb76c0000-b76c2000 r--p 00000000 09:01 88555522   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-08c44c7f188425373f8ecb95e4bb342ee40d340e.idx\nb76c2000-b76cb000 r--p 00000000 09:01 88555534   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-1fd3ce5f1145636ad725dec83f5ef91b80ec1cf3.idx\nb76cb000-b76cf000 r--p 00000000 09:01 88555545   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-0e5768a969e7c4ef4f3406a129b1271971ee5342.idx\nb76cf000-b76d4000 r--p 00000000 09:01 88555547   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-92592ad40e58a75d3d1b30a0a46e7ad63817637b.idx\nb76d4000-b76d6000 r--p 00000000 09:01 88555549   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-5b26c4eb6fed3ce5b26e921aee548a7f3259a11e.idx\nb76d6000-b76d9000 r--p 00000000 09:01 88555551   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-4a9b526f37540b18dd2ff4e97ec94fcb49c0aeb6.idx\nb76d9000-b76dd000 r--p 00000000 09:01 88555553   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-1a7d19bf1f4aa63bb54b0f7e77f5df8889099e3f.idx\nb76dd000-b76e0000 r--p 00000000 09:01 88555558   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-7da553217dc96aa89cdcf50fe45615143aa01089.idx\nb76e0000-b76e6000 r--p 00000000 09:01 88555555   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-e795f1594ea70cca88a97ad23d2d62da06941038.idx\nb76e6000-b76ea000 r--p 00000000 09:01 88555560   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-4c79da67fb0435e3a4a7440a714fb9d617995387.idx\nb76e6000-b76ea000 r--p 00000000 09:01 88555560   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-4c79da67fb0435e3a4a7440a714fb9d617995387.idx\nb76ea000-b76ef000 r--p 00000000 09:01 88555563   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-63e7f343a0aa5f8f6841c81211db00ce95adbe76.idx\nb76ef000-b76f1000 rw-p 00000000 00:00 0\nb76f5000-b76fa000 r--p 00000000 09:01 88555565   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-b37609403c59702e384e42a9df4bc16e2b3c1072.idx\nb76fa000-b76fc000 r--p 00000000 09:01 88555542   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-23f0d9e30ada6f829f6743a395bcb6f229c1453b.idx\nb76fc000-b7700000 r--p 00000000 09:01 88555571   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-d073eba6bd4143e405ec9db4172d4406fa08ace8.idx\nb7700000-b7702000 r--p 00000000 09:01 88555574   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-b2481dc10cc72226ff396e864e4a6d7e2c26137d.idx\nb7702000-b7704000 r--p 00000000 09:01 88555577   /archive/ftp/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/objects/pack/pack-866787d1e38a3c7c9ac0ab7057935bf5970bf319.idx\nb7704000-b7705000 rw-p 00000000 00:00 0\nbf8dc000-bf8fd000 rw-p 00000000 00:00 0          [stack]\n\nIt's worth noting that Linus tree currently has 19 pack files, my tree\nhas an additional 9 on that.\n\n_______________________________________________\nlinux-arm-kernel mailing list\nlinux-arm-kernel@lists.infradead.org\nhttp://lists.infradead.org/mailman/listinfo/linux-arm-kernel\n\n\n----- End forwarded message -----\n\n-- \nPengutronix e.K.                           | Uwe Kleine-König            |\nIndustrial Linux Solutions                 | http://www.pengutronix.de/  |\n"}]}