lkml.org 
[lkml]   [2005]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: 2.6.14 kswapd eating too much CPU
    Andrew Morton wrote:
    : Jan Kasprzak <kas@fi.muni.cz> wrote:
    : >
    : > I have noticed that on my system kswapd eats too much CPU time every two
    : > hours or so. This started when I upgraded this server to 2.6.14.2 (was 2.6.13.2
    : > before), and added another 4 GB of memory (to the total of 8GB).
    :
    : Next time it happens, please gather some memory info (while it's happening):
    :
    : cat /proc/meminfo

    # cat /proc/meminfo
    MemTotal: 8174528 kB
    MemFree: 33312 kB
    Buffers: 33472 kB
    Cached: 7565188 kB
    SwapCached: 0 kB
    Active: 2457564 kB
    Inactive: 5469168 kB
    HighTotal: 0 kB
    HighFree: 0 kB
    LowTotal: 8174528 kB
    LowFree: 33312 kB
    SwapTotal: 14651256 kB
    SwapFree: 14650616 kB
    Dirty: 67136 kB
    Writeback: 0 kB
    Mapped: 348848 kB
    Slab: 159900 kB
    CommitLimit: 18738520 kB
    Committed_AS: 746976 kB
    PageTables: 15596 kB
    VmallocTotal: 34359738367 kB
    VmallocUsed: 9500 kB
    VmallocChunk: 34359728803 kB

    : cat /proc/vmstat

    # cat /proc/vmstat
    nr_dirty 15117
    nr_writeback 0
    nr_unstable 0
    nr_page_table_pages 3975
    nr_mapped 88352
    nr_slab 39997
    pgpgin 4793492568
    pgpgout 470966429
    pswpin 0
    pswpout 160
    pgalloc_high 0
    pgalloc_normal 2450703504
    pgalloc_dma 982887145
    pgfree 3433597403
    pgactivate 368526738
    pgdeactivate 334812475
    pgfault 1595083992
    pgmajfault 64619
    pgrefill_high 0
    pgrefill_normal 533924428
    pgrefill_dma 1995932
    pgsteal_high 0
    pgsteal_normal 923247535
    pgsteal_dma 0
    pgscan_kswapd_high 0
    pgscan_kswapd_normal 940269891
    pgscan_kswapd_dma 0
    pgscan_direct_high 0
    pgscan_direct_normal 13837131
    pgscan_direct_dma 0
    pginodesteal 11216563
    slabs_scanned 160160350534400
    kswapd_steal 909876526
    kswapd_inodesteal 305039060
    pageoutrun 30139677
    allocstall 4067783
    pgrotated 1198
    nr_bounce 0

    : cat /proc/slabinfo

    # 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>
    nfsd4_delegations 0 0 656 6 1 : tunables 54 27 8 : slabdata 0 0 0
    nfsd4_stateids 0 0 128 30 1 : tunables 120 60 8 : slabdata 0 0 0
    nfsd4_files 0 0 72 53 1 : tunables 120 60 8 : slabdata 0 0 0
    nfsd4_stateowners 0 0 424 9 1 : tunables 54 27 8 : slabdata 0 0 0
    raid5/md5 256 260 1424 5 2 : tunables 24 12 8 : slabdata 52 52 0
    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 8 832 4 1 : tunables 54 27 8 : slabdata 2 2 0
    fib6_nodes 33 118 64 59 1 : tunables 120 60 8 : slabdata 2 2 0
    ip6_dst_cache 26 36 320 12 1 : tunables 54 27 8 : slabdata 3 3 0
    ndisc_cache 3 30 256 15 1 : tunables 120 60 8 : slabdata 2 2 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 13 15 1536 5 2 : tunables 24 12 8 : slabdata 3 3 0
    UNIX 460 654 640 6 1 : tunables 54 27 8 : slabdata 109 109 0
    tcp_bind_bucket 233 2800 32 112 1 : tunables 120 60 8 : slabdata 25 25 0
    inet_peer_cache 32 177 64 59 1 : tunables 120 60 8 : slabdata 3 3 0
    ip_fib_alias 20 118 64 59 1 : tunables 120 60 8 : slabdata 2 2 0
    ip_fib_hash 17 118 64 59 1 : tunables 120 60 8 : slabdata 2 2 0
    ip_dst_cache 985 1776 320 12 1 : tunables 54 27 8 : slabdata 148 148 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 35 40 768 5 1 : tunables 54 27 8 : slabdata 8 8 0
    tw_sock_TCP 174 640 192 20 1 : tunables 120 60 8 : slabdata 32 32 0
    request_sock_TCP 48 60 128 30 1 : tunables 120 60 8 : slabdata 2 2 0
    TCP 333 525 1408 5 2 : tunables 24 12 8 : slabdata 105 105 0
    dm_tio 0 0 24 144 1 : tunables 120 60 8 : slabdata 0 0 0
    dm_io 0 0 32 112 1 : tunables 120 60 8 : slabdata 0 0 0
    scsi_cmd_cache 74 168 512 7 1 : tunables 54 27 8 : slabdata 19 24 30
    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 0 0 96 40 1 : tunables 120 60 8 : slabdata 0 0 0
    as_arq 159 408 112 34 1 : tunables 120 60 8 : slabdata 11 12 5
    xfs_acl 0 0 304 13 1 : tunables 54 27 8 : slabdata 0 0 0
    xfs_chashlist 4965 8512 32 112 1 : tunables 120 60 8 : slabdata 76 76 0
    xfs_ili 213 260 192 20 1 : tunables 120 60 8 : slabdata 13 13 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 74 84 184 21 1 : tunables 120 60 8 : slabdata 4 4 0
    xfs_dabuf 52 288 24 144 1 : tunables 120 60 8 : slabdata 2 2 0
    xfs_da_state 6 16 488 8 1 : tunables 54 27 8 : slabdata 2 2 0
    xfs_trans 6 45 872 9 2 : tunables 54 27 8 : slabdata 3 5 0
    xfs_inode 31498 31577 528 7 1 : tunables 54 27 8 : slabdata 4511 4511 0
    xfs_btree_cur 13 40 192 20 1 : tunables 120 60 8 : slabdata 2 2 0
    xfs_bmap_free_item 2 144 24 144 1 : tunables 120 60 8 : slabdata 1 1 0
    xfs_buf 88 99 408 9 1 : tunables 54 27 8 : slabdata 11 11 0
    xfs_ioend 32 54 144 27 1 : tunables 120 60 8 : slabdata 2 2 0
    xfs_vnode 31498 31572 648 6 1 : tunables 54 27 8 : slabdata 5262 5262 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 184 184 992 4 1 : tunables 54 27 8 : slabdata 46 46 0
    nfs_page 0 0 128 30 1 : tunables 120 60 8 : slabdata 0 0 0
    isofs_inode_cache 10 12 648 6 1 : tunables 54 27 8 : slabdata 2 2 0
    journal_handle 81 288 24 144 1 : tunables 120 60 8 : slabdata 2 2 0
    journal_head 681 1160 96 40 1 : tunables 120 60 8 : slabdata 29 29 384
    revoke_table 6 202 16 202 1 : tunables 120 60 8 : slabdata 1 1 0
    revoke_record 0 0 32 112 1 : tunables 120 60 8 : slabdata 0 0 0
    ext3_inode_cache 3542 3805 808 5 1 : tunables 54 27 8 : slabdata 761 761 0
    ext3_xattr 0 0 88 44 1 : tunables 120 60 8 : slabdata 0 0 0
    dnotify_cache 1 92 40 92 1 : tunables 120 60 8 : slabdata 1 1 0
    dquot 0 0 256 15 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 0 0 64 59 1 : tunables 120 60 8 : slabdata 0 0 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 818 825 808 5 1 : tunables 54 27 8 : slabdata 165 165 0
    posix_timers_cache 0 0 168 23 1 : tunables 120 60 8 : slabdata 0 0 0
    uid_cache 47 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 65 120 1024 4 1 : tunables 54 27 8 : slabdata 22 30 3
    sgpool-16 36 40 512 8 1 : tunables 54 27 8 : slabdata 5 5 0
    sgpool-8 109 195 256 15 1 : tunables 120 60 8 : slabdata 13 13 1
    blkdev_ioc 231 469 56 67 1 : tunables 120 60 8 : slabdata 7 7 0
    blkdev_queue 80 88 712 11 2 : tunables 54 27 8 : slabdata 8 8 0
    blkdev_requests 283 375 264 15 1 : tunables 54 27 8 : slabdata 22 25 216
    biovec-(256) 260 260 4096 1 1 : tunables 24 12 8 : slabdata 260 260 0
    biovec-128 264 264 2048 2 1 : tunables 24 12 8 : slabdata 132 132 0
    biovec-64 304 380 1024 4 1 : tunables 54 27 8 : slabdata 81 95 3
    biovec-16 285 300 256 15 1 : tunables 120 60 8 : slabdata 20 20 0
    biovec-4 284 354 64 59 1 : tunables 120 60 8 : slabdata 6 6 0
    biovec-1 841 4040 16 202 1 : tunables 120 60 8 : slabdata 20 20 480
    bio 870 2430 128 30 1 : tunables 120 60 8 : slabdata 79 81 480
    file_lock_cache 38 48 160 24 1 : tunables 120 60 8 : slabdata 2 2 0
    sock_inode_cache 832 1250 704 5 1 : tunables 54 27 8 : slabdata 250 250 0
    skbuff_fclone_cache 4963 7224 448 8 1 : tunables 54 27 8 : slabdata 903 903 162
    skbuff_head_cache 542 675 256 15 1 : tunables 120 60 8 : slabdata 45 45 0
    acpi_operand 1028 1060 72 53 1 : tunables 120 60 8 : slabdata 20 20 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 910 954 632 6 1 : tunables 54 27 8 : slabdata 159 159 20
    sigqueue 10 46 168 23 1 : tunables 120 60 8 : slabdata 2 2 0
    radix_tree_node 70767 79870 536 7 1 : tunables 54 27 8 : slabdata 11410 11410 0
    bdev_cache 55 56 832 4 1 : tunables 54 27 8 : slabdata 14 14 0
    sysfs_dir_cache 3346 3445 72 53 1 : tunables 120 60 8 : slabdata 65 65 0
    mnt_cache 39 60 192 20 1 : tunables 120 60 8 : slabdata 3 3 0
    inode_cache 1164 1224 600 6 1 : tunables 54 27 8 : slabdata 204 204 0
    dentry_cache 44291 48569 224 17 1 : tunables 120 60 8 : slabdata 2857 2857 51
    filp 3106 5955 256 15 1 : tunables 120 60 8 : slabdata 397 397 48
    names_cache 6 6 4096 1 1 : tunables 24 12 8 : slabdata 6 6 0
    idr_layer_cache 90 98 528 7 1 : tunables 54 27 8 : slabdata 14 14 0
    buffer_head 218819 233948 88 44 1 : tunables 120 60 8 : slabdata 5317 5317 0
    mm_struct 272 483 1152 7 2 : tunables 24 12 8 : slabdata 69 69 3
    vm_area_struct 17201 26670 184 21 1 : tunables 120 60 8 : slabdata 1270 1270 480
    fs_cache 267 708 64 59 1 : tunables 120 60 8 : slabdata 12 12 0
    files_cache 290 440 896 4 1 : tunables 54 27 8 : slabdata 110 110 0
    signal_cache 343 546 640 6 1 : tunables 54 27 8 : slabdata 91 91 0
    sighand_cache 316 423 2112 3 2 : tunables 24 12 8 : slabdata 141 141 3
    task_struct 333 492 1728 4 2 : tunables 24 12 8 : slabdata 123 123 3
    anon_vma 1474 3168 24 144 1 : tunables 120 60 8 : slabdata 22 22 12
    shared_policy_node 0 0 56 67 1 : tunables 120 60 8 : slabdata 0 0 0
    numa_policy 36 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 0 0 65536 1 16 : tunables 8 4 0 : slabdata 0 0 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 1 1 16384 1 4 : tunables 8 4 0 : slabdata 1 1 0
    size-8192(DMA) 0 0 8192 1 2 : tunables 8 4 0 : slabdata 0 0 0
    size-8192 36 37 8192 1 2 : tunables 8 4 0 : slabdata 36 37 0
    size-4096(DMA) 0 0 4096 1 1 : tunables 24 12 8 : slabdata 0 0 0
    size-4096 353 357 4096 1 1 : tunables 24 12 8 : slabdata 353 357 15
    size-2048(DMA) 0 0 2048 2 1 : tunables 24 12 8 : slabdata 0 0 0
    size-2048 978 988 2048 2 1 : tunables 24 12 8 : slabdata 492 494 0
    size-1024(DMA) 0 0 1024 4 1 : tunables 54 27 8 : slabdata 0 0 0
    size-1024 5016 5800 1024 4 1 : tunables 54 27 8 : slabdata 1450 1450 189
    size-512(DMA) 0 0 512 8 1 : tunables 54 27 8 : slabdata 0 0 0
    size-512 720 776 512 8 1 : tunables 54 27 8 : slabdata 97 97 0
    size-256(DMA) 0 0 256 15 1 : tunables 120 60 8 : slabdata 0 0 0
    size-256 88 135 256 15 1 : tunables 120 60 8 : slabdata 9 9 0
    size-192(DMA) 0 0 192 20 1 : tunables 120 60 8 : slabdata 0 0 0
    size-192 1786 2600 192 20 1 : tunables 120 60 8 : slabdata 130 130 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 18281 33158 64 59 1 : tunables 120 60 8 : slabdata 562 562 0
    size-32(DMA) 0 0 32 112 1 : tunables 120 60 8 : slabdata 0 0 0
    size-128 5450 9180 128 30 1 : tunables 120 60 8 : slabdata 306 306 1
    size-32 950 1232 32 112 1 : tunables 120 60 8 : slabdata 11 11 0
    kmem_cache 156 156 640 6 1 : tunables 54 27 8 : slabdata 26 26 0

    : dmesg -c > /dev/null
    : echo m > /proc/sysrq-trigger
    : dmesg

    I don't have sysrq compiled in, sorry. I will recompile/boot
    a new kernel maybe tomorrow.

    I have found that this two-hour period of system time peaks is from
    a cron job which does a full-text indexing of the archive of the mailing
    list I run - so access to many small files (mailing list posts), and update
    to the large "inverted index" database. However - this time I have also
    kswapd0 with 95% CPU, and the next ~50% is proftpd on the other CPU in the
    "R" state, which cannot be killed even with SIGKILL:

    top - 01:56:18 up 9 days, 4:00, 2 users, load average: 4.91, 4.46, 5.71
    Tasks: 310 total, 12 running, 298 sleeping, 0 stopped, 0 zombie
    Cpu(s): 3.8% us, 73.8% sy, 2.2% ni, 1.5% id, 17.1% wa, 0.2% hi, 1.5% si
    Mem: 8174528k total, 8144104k used, 30424k free, 33552k buffers
    Swap: 14651256k total, 640k used, 14650616k free, 7570548k cached

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    16 root 15 0 0 0 0 R 91.8 0.0 1628:43 kswapd0
    25345 ftp 22 5 12448 3988 872 R 49.4 0.0 14:30.79 proftpd
    21680 apache 17 0 28448 9220 2260 R 2.7 0.1 0:01.39 ezarchive.fcgi
    1449 rsyncd 35 19 19836 11m 948 S 2.3 0.1 9:35.26 rsync
    24152 rsyncd 34 19 12764 4568 936 R 1.7 0.1 0:31.54 rsync
    30811 rsyncd 35 19 10424 1664 896 S 1.7 0.0 0:13.97 rsync

    Hope this helps,

    -Yenya

    --
    | Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
    | GPG: ID 1024/D3498839 Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
    | http://www.fi.muni.cz/~kas/ Journal: http://www.fi.muni.cz/~kas/blog/ |
    > Specs are a basis for _talking_about_ things. But they are _not_ a basis <
    > for implementing software. --Linus Torvalds <
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-11-23 02:04    [W:0.084 / U:0.040 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site