xfs
[Top] [All Lists]

Re: deep chmod|chown -R begin to start OOMkiller

To: Anders Saaby <as@xxxxxxxxxxxx>
Subject: Re: deep chmod|chown -R begin to start OOMkiller
From: Peter Broadwell <peter@xxxxxxxx>
Date: Mon, 15 May 2006 14:30:54 -0700
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <200605151159.34802.as@xxxxxxxxxxxx>
References: <4464E3B5.8020602@xxxxxxxx> <200605151159.34802.as@xxxxxxxxxxxx>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Thunderbird 1.5.0.2 (X11/20060420)
Anders -

First, thanks for the reply.

Yes, high CPU load, around 6-7 on a dual AMD Opteron system but much of it
may be caused by other things running.

Is there some tool that can isolate the load vs. D-state hang on
a per-process instance?

My chown did finally finish, some 63 hrs later for about 75 chowns/sec.
This is running on system with 4 SATA 7200 rpm drives configured with
software RAID 10 so it is essencialy 2 spindles and we are seeing
about 1/3 of the theoretical maximum.
Would of course be nice to do better, but perhaps is in bounds for reality?

In looking around I did see a ioctl, XFS_IOC_FSBULKSTAT, that seemed
like it might give a different approach to doing this, but looked like it
was read only (and lots of work to get anything going with it...)
Is this a worthwhile avenue to look at more deeply?

;;peter


Anders Saaby wrote:
Hi,

Do you have high CPU usage when running the chown? - Or just processes hanging i D-state?

On Friday 12 May 2006 21:36, Peter Broadwell wrote:
I seem to be having the same problem as CHIKAMA Masaki was having in
December 7, 2005, namely "chown -R" running very slowly when hitting lots
of files (~17 million in my case).

My machine doesn't have the same constraints that David pointed to as at
least part of the problem.
I have fast disks, and lots of memory (though perhaps still bad logfile
sizes) So I thought I'd feed into the discussion a bit, hoping for any
other ideas...

I'm most interested in anything to (safely) speed this up on a live file
system as it has been running for nearly 24 hours so far... not hung or
corrupted anything as far as I can tell.

Following is possibly interesting info from uname, /proc/meminfo,
/proc/slabinfo, ... (I don't have OOMkiller though):

Thanks -

;;peter

= = = = (start of info) = = = =

peter@cl1 /data $ uname -sr
Linux 2.6.14-gentoo-r2
peter@cl1 /data $ cat /proc/meminfo
MemTotal:      8058120 kB
MemFree:       2770704 kB
Buffers:            12 kB
Cached:        3412304 kB
SwapCached:       6860 kB
Active:        2914928 kB
Inactive:      1673712 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:      8058120 kB
LowFree:       2770704 kB
SwapTotal:    32129968 kB
SwapFree:     32114220 kB
Dirty:              16 kB
Writeback:           0 kB
Mapped:        1191804 kB
Slab:           666680 kB
CommitLimit:  36159028 kB
Committed_AS:  1313628 kB
PageTables:       4564 kB
VmallocTotal: 34359738367 kB
VmallocUsed:     24420 kB
VmallocChunk: 34359713687 kB
HugePages_Total:     0
HugePages_Free:      0
Hugepagesize:     2048 kB
peter@cl1 /data $ cat /proc/slabinfo
slabinfo - version: 2.1
# name            <active_objs> <num_objs> <objsize> <objperslab>
<pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata
<active_slabs> <num_slabs> <sharedavail>
rpc_buffers            8      8   2048    2    1 : tunables   24   12    8
: slabdata      4      4      0 rpc_tasks              8     10    384   10
   1 : tunables   54   27    8 : slabdata      1      1      0
rpc_inode_cache        8     12    832    4    1 : tunables   54   27    8
: slabdata      3      3      0 fib6_nodes             7    118     64   59
   1 : tunables  120   60    8 : slabdata      2      2      0
ip6_dst_cache          7     24    320   12    1 : tunables   54   27    8
: slabdata      2      2      0 ndisc_cache            1     15    256   15
1 : tunables 120 60 8 : slabdata 1 1 0 RAWv6 4 4 896 4 1 : tunables 54 27 8 : slabdata 1 1 0 UDPv6 1 4 896 4 1 : tunables 54 27 8 : slabdata 1 1 0 tw_sock_TCPv6 0 0 192 20 1 : tunables 120 60 8 : slabdata 0 0 0 request_sock_TCPv6 0 0 128 30 1 : tunables 120 60 8 : slabdata 0 0 0 TCPv6 6 10 1536 5 2 : tunables 24 12 8 : slabdata 2 2 0 UNIX 41 54 640 6 1 : tunables 54 27 8 : slabdata 9 9 0 tcp_bind_bucket 34 448 32 112 1 : tunables 120 60 8 : slabdata 4 4 0
inet_peer_cache        0      0     64   59    1 : tunables  120   60    8
: slabdata      0      0      0 ip_fib_alias          14    118     64   59
1 : tunables 120 60 8 : slabdata 2 2 0 ip_fib_hash 14 118 64 59 1 : tunables 120 60 8 : slabdata 2 2 0 ip_dst_cache 36 48 320 12 1 : tunables 54 27 8 : slabdata 4 4 0 arp_cache 8 30 256 15 1 : tunables 120 60 8 : slabdata 2 2 0 RAW 3 11 704 11 2 : tunables 54 27 8 : slabdata 1 1 0 UDP 16 20 768 5 1 : tunables 54 27 8 : slabdata 4 4 0
tw_sock_TCP           23     40    192   20    1 : tunables  120   60    8
: slabdata      2      2      0 request_sock_TCP       8     30    128   30
1 : tunables 120 60 8 : slabdata 1 1 0 TCP 15 25 1408 5 2 : tunables 24 12 8 : slabdata 5 5 0 uhci_urb_priv 0 0 88 44 1 : tunables 120 60 8 : slabdata 0 0 0 scsi_cmd_cache 29 35 512 7 1 : tunables 54 27 8 : slabdata 5 5 0 cfq_ioc_pool 0 0 96 40 1 : tunables 120 60 8 : slabdata 0 0 0 cfq_pool 0 0 160 24 1 : tunables 120 60 8 : slabdata 0 0 0
crq_pool               0      0     88   44    1 : tunables  120   60    8
: slabdata      0      0      0 deadline_drq         607    760     96   40
1 : tunables 120 60 8 : slabdata 18 19 480 as_arq 0 0 112 34 1 : tunables 120 60 8 : slabdata 0 0 0 mqueue_inode_cache 1 4 896 4 1 : tunables 54 27 8 : slabdata 1 1 0 xfs_chashlist 205900 385952 32 112 1 : tunables 120 60 8 : slabdata 3446 3446 0 xfs_ili 273754 273760 192 20 1 : tunables 120 60 8 : slabdata 13688 13688 0 xfs_ifork 0 0 64 59 1 : tunables 120 60 8 : slabdata 0 0 0 xfs_efi_item 0 0 352 11 1 : tunables 54 27 8 : slabdata 0 0 0 xfs_efd_item 0 0 360 11 1 : tunables 54 27 8 : slabdata 0 0 0
xfs_buf_item           1     21    184   21    1 : tunables  120   60    8
: slabdata      1      1      0 xfs_dabuf             45    288     24  144
   1 : tunables  120   60    8 : slabdata      2      2      0 xfs_da_state
0 0 488 8 1 : tunables 54 27 8 : slabdata 0 0 0 xfs_trans 186 351 872 9 2 : tunables 54 27 8 : slabdata 32 39 81 xfs_inode 275317 275317 528 7 1 : tunables 54 27 8 : slabdata 39331 39331 0 xfs_btree_cur 0 0 192 20 1 : tunables 120 60 8 : slabdata 0 0 0 xfs_bmap_free_item 0 0 24 144 1 : tunables 120 60 8 : slabdata 0 0 0 xfs_buf 288 414 408 9 1 : tunables 54 27 8 : slabdata 45 46 216 xfs_ioend 32 54 144 27 1 : tunables 120 60 8 : slabdata 2 2 0 xfs_vnode
        275316 275316    632    6    1 : tunables   54   27    8 : slabdata
 45886  45886      0 ntfs_big_inode_cache      0      0    896    4    1 :
tunables 54 27 8 : slabdata 0 0 0 ntfs_inode_cache 0 0 272 14 1 : tunables 54 27 8 : slabdata 0 0 0 ntfs_name_cache 0 0 512 8 1 : tunables 54
  27    8 : slabdata      0      0      0 ntfs_attr_ctx_cache      0      0
    64   59    1 : tunables  120   60    8 : slabdata      0      0      0
ntfs_index_ctx_cache 0 0 128 30 1 : tunables 120 60 8 : slabdata 0 0 0 nfs_write_data 36 36 832 9 2 : tunables 54 27 8 : slabdata 4 4 0
nfs_read_data         32     35    768    5    1 : tunables   54   27    8
: slabdata      7      7      0 nfs_inode_cache        1      4    912    4
1 : tunables 54 27 8 : slabdata 1 1 0 nfs_page 0 0 128 30 1 : tunables 120 60 8 : slabdata 0 0 0 isofs_inode_cache 0 0 632 6 1 : tunables 54 27 8 : slabdata 0 0 0 fat_inode_cache 0 0 664 6 1 : tunables 54 27 8 : slabdata 0 0 0 fat_cache 0 0 32 112 1 : tunables 120 60 8 : slabdata 0 0 0 hugetlbfs_inode_cache 1 6 600 6 1 : tunables 54 27 8 : slabdata 1 1 0 ext2_inode_cache 0 0 744 5 1 : tunables 54 27 8 : slabdata 0 0 0 ext2_xattr 0 0 88 44 1 : tunables 120 60 8 : slabdata 0 0 0
journal_handle         0      0     24  144    1 : tunables  120   60    8
: slabdata      0      0      0 journal_head           0      0     96   40
   1 : tunables  120   60    8 : slabdata      0      0      0 revoke_table
0 0 16 202 1 : tunables 120 60 8 : slabdata 0 0 0 revoke_record 0 0 32 112 1 : tunables 120 60 8 : slabdata 0 0 0 ext3_inode_cache 0 0 792 5 1 : tunables 54 27 8 : slabdata 0 0 0 ext3_xattr 0 0 88 44 1 : tunables 120 60 8 : slabdata 0 0 0 reiser_inode_cache 0 0 704 5 1 : tunables 54 27 8 : slabdata 0 0 0
dnotify_cache          0      0     40   92    1 : tunables  120   60    8
: slabdata      0      0      0 eventpoll_pwq          0      0     72   53
   1 : tunables  120   60    8 : slabdata      0      0      0
eventpoll_epi          0      0    192   20    1 : tunables  120   60    8
: slabdata 0 0 0 inotify_event_cache 0 0 40 92 1 : tunables 120 60 8 : slabdata 0 0 0 inotify_watch_cache 1 59 64 59 1 : tunables 120 60 8 : slabdata 1 1 0 kioctx 0 0 320 12 1 : tunables 54 27 8 : slabdata 0 0 0 kiocb 0 0 256 15 1 : tunables 120 60 8 : slabdata
     0      0      0 fasync_cache           0      0     24  144    1 :
tunables 120 60 8 : slabdata 0 0 0 shmem_inode_cache 840 850 792 5 1 : tunables 54 27 8 : slabdata 170 170 0 posix_timers_cache 0 0 168 23 1 : tunables 120 60 8 : slabdata 0 0 0 uid_cache 9 118 64 59 1 : tunables 120 60 8 : slabdata 2 2 0 sgpool-128 32 32 4096 1 1 : tunables 24 12 8 : slabdata 32 32 0 sgpool-64 32 32 2048 2 1 : tunables 24 12 8 : slabdata 16 16 0 sgpool-32 32 32 1024 4 1 : tunables 54 27 8 : slabdata 8 8 0 sgpool-16 45 48 512 8 1 : tunables 54 27 8 : slabdata 6 6 0 sgpool-8 52 60 256 15 1 : tunables 120 60 8 : slabdata 4 4 0 blkdev_ioc 114 201 56 67 1 : tunables 120 60 8 : slabdata 3 3 0 blkdev_queue 31 44 712 11 2 : tunables 54 27 8 : slabdata 4 4 0
blkdev_requests      311    630    264   15    1 : tunables   54   27    8
: slabdata     40     42    216 biovec-(256)         256    256   4096    1
1 : tunables 24 12 8 : slabdata 256 256 0 biovec-128 256 256 2048 2 1 : tunables 24 12 8 : slabdata 128 128 0 biovec-64 256 256 1024 4 1 : tunables 54 27 8 : slabdata 64 64 0 biovec-16 285 285 256 15 1 : tunables 120 60 8 : slabdata 19 19 0 biovec-4 864 1652 64 59 1 : tunables 120 60 8 : slabdata 27 28 480 biovec-1 482 1616 16 202 1 : tunables 120 60 8 : slabdata 8 8 108
bio                  860   1500    128   30    1 : tunables  120   60    8
: slabdata     50     50    480 file_lock_cache        6     24    160   24
   1 : tunables  120   60    8 : slabdata      1      1      0
sock_inode_cache      93    130    704    5    1 : tunables   54   27    8
: slabdata 26 26 0 skbuff_fclone_cache 20 32 448 8 1 : tunables 54 27 8 : slabdata 3 4 0
skbuff_head_cache    555   1035    256   15    1 : tunables  120   60    8
: slabdata     69     69      0 acpi_operand        1127   1166     72   53
   1 : tunables  120   60    8 : slabdata     22     22      0
acpi_parse_ext         0      0     64   59    1 : tunables  120   60    8
: slabdata      0      0      0 acpi_parse             0      0     40   92
1 : tunables 120 60 8 : slabdata 0 0 0 acpi_state 0 0 88 44 1 : tunables 120 60 8 : slabdata 0 0 0 proc_inode_cache 667 690 616 6 1 : tunables 54 27 8 : slabdata 115 115 0 sigqueue 32 46 168 23 1 : tunables 120 60 8 : slabdata 2 2 0 radix_tree_node 232625 303359 536 7 1 : tunables 54 27 8 : slabdata 43337 43337 0 bdev_cache 22 28 832 4 1 : tunables 54 27 8 : slabdata 7 7 0
sysfs_dir_cache     2946   3021     72   53    1 : tunables  120   60    8
: slabdata     57     57      0 mnt_cache             26     60    192   20
1 : tunables 120 60 8 : slabdata 3 3 0 inode_cache 1080 1085 584 7 1 : tunables 54 27 8 : slabdata 155 155 0 dentry_cache 252909 252909 224 17 1 : tunables 120 60 8 : slabdata 14877 14877 0 filp 883 1365 256 15 1 : tunables 120 60 8 : slabdata 91 91 0 names_cache 3 5 4096 1 1 : tunables 24 12 8 : slabdata 3 5 0 idr_layer_cache 77 84 528 7 1 : tunables 54 27 8 : slabdata 12 12 0
buffer_head        52111 139612     88   44    1 : tunables  120   60    8
: slabdata   3173   3173      0 mm_struct             67     77   1152    7
   2 : tunables   24   12    8 : slabdata     11     11      0
vm_area_struct      2672   2814    184   21    1 : tunables  120   60    8
: slabdata    134    134      0 fs_cache              76    118     64   59
1 : tunables 120 60 8 : slabdata 2 2 0 files_cache 66 72 896 4 1 : tunables 54 27 8 : slabdata 18 18 0 signal_cache 109 120 640 6 1 : tunables 54 27 8 : slabdata 20 20 0 sighand_cache 103 108 2112 3 2 : tunables 24 12 8 : slabdata 36 36 0 task_struct 123 128 1728 4 2 : tunables 24 12 8 : slabdata 32 32 0 anon_vma 987 1440 24 144 1 : tunables 120 60 8 : slabdata 10 10 0
shared_policy_node      0      0     56   67    1 : tunables  120   60    8
: slabdata      0      0      0 numa_policy           39    404     16  202
   1 : tunables  120   60    8 : slabdata      2      2      0
size-131072(DMA)       0      0 131072    1   32 : tunables    8    4    0
: slabdata      0      0      0 size-131072            0      0 131072    1
  32 : tunables    8    4    0 : slabdata      0      0      0
size-65536(DMA)        0      0  65536    1   16 : tunables    8    4    0
: slabdata      0      0      0 size-65536             2      2  65536    1
  16 : tunables    8    4    0 : slabdata      2      2      0
size-32768(DMA)        0      0  32768    1    8 : tunables    8    4    0
: slabdata      0      0      0 size-32768            20     20  32768    1
   8 : tunables    8    4    0 : slabdata     20     20      0
size-16384(DMA)        0      0  16384    1    4 : tunables    8    4    0
: slabdata      0      0      0 size-16384             0      0  16384    1
   4 : tunables    8    4    0 : slabdata      0      0      0
size-8192(DMA)         0      0   8192    1    2 : tunables    8    4    0
: slabdata      0      0      0 size-8192             17     17   8192    1
   2 : tunables    8    4    0 : slabdata     17     17      0
size-4096(DMA)         0      0   4096    1    1 : tunables   24   12    8
: slabdata      0      0      0 size-4096            269    270   4096    1
   1 : tunables   24   12    8 : slabdata    269    270      0
size-2048(DMA)         0      0   2048    2    1 : tunables   24   12    8
: slabdata      0      0      0 size-2048            708    736   2048    2
   1 : tunables   24   12    8 : slabdata    363    368      0
size-1024(DMA)         0      0   1024    4    1 : tunables   54   27    8
: slabdata      0      0      0 size-1024            350    368   1024    4
   1 : tunables   54   27    8 : slabdata     92     92      0
size-512(DMA)          0      0    512    8    1 : tunables   54   27    8
: slabdata      0      0      0 size-512             619    640    512    8
   1 : tunables   54   27    8 : slabdata     80     80      0
size-256(DMA)          0      0    256   15    1 : tunables  120   60    8
: slabdata      0      0      0 size-256              82    105    256   15
   1 : tunables  120   60    8 : slabdata      7      7      0
size-192(DMA)          0      0    192   20    1 : tunables  120   60    8
: slabdata      0      0      0 size-192            1560   2000    192   20
   1 : tunables  120   60    8 : slabdata    100    100      0
size-128(DMA)          0      0    128   30    1 : tunables  120   60    8
: slabdata      0      0      0 size-64(DMA)           0      0     64   59
1 : tunables 120 60 8 : slabdata 0 0 0 size-64 2672 9027 64 59 1 : tunables 120 60 8 : slabdata 153 153 0 size-32(DMA) 0 0 32 112 1 : tunables 120 60 8 : slabdata 0 0 0 size-128 3807 4950 128 30 1 : tunables 120 60 8 : slabdata 165 165 300 size-32 703 784 32 112 1 : tunables 120 60 8 : slabdata 7 7 0 kmem_cache 155 155 704 5 1 : tunables 54 27 8 : slabdata 31 31 0
peter@cl1 /data $

peter@cl1 /data $ df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/md/0             22479104  13991500   8487604  63% /
udev                   4029060       244   4028816   1% /dev
/dev/md/1            449447808 338816792 110631016  76% /data
none                   4029060         0   4029060   0% /dev/shm
cl4:/data            451279232 112298760 338980472  25% /mnt/cl4-data
peter@cl1 /data $ xfs_info /data
meta-data=/dev/md1               isize=256    agcount=16, agsize=7024672
blks =                       sectsz=512
data     =                       bsize=4096   blocks=112394720, imaxpct=25
          =                       sunit=16     swidth=64 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal               bsize=4096   blocks=32768, version=1
          =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=262144 blocks=0, rtextents=0
peter@cl1 /data $

= = = = (end of info) = = = =



<Prev in Thread] Current Thread [Next in Thread>