We find that for some servers io disk read is very high. We also notice that there are many major page faults on those servers. But we checked the /proc/zoneinfo, there are enough free pages. Here is the content of /proc/zoneinfo:

pages free     3913507
        min      11333
        low      14166
        high     16999
        scanned  0
        spanned  16777216
        present  16777216
        managed  16507043
    nr_free_pages 3913507

We also use "perf" to monitor the event of "mm_filemap_delete_from_page_cache". Here is the result of perf:

7fff81189dd0 __delete_from_page_cache ([kernel.kallsyms])
        7fff8119b771 __remove_mapping ([kernel.kallsyms])
        7fff8119c8e8 shrink_page_list ([kernel.kallsyms])
        7fff8119d45a shrink_inactive_list ([kernel.kallsyms])
        7fff8119df55 shrink_lruvec ([kernel.kallsyms])
        7fff8119e376 shrink_zone ([kernel.kallsyms])
        7fff8119e880 do_try_to_free_pages ([kernel.kallsyms])
        7fff8119ed6c try_to_free_pages ([kernel.kallsyms])
        7fff816ac515 __alloc_pages_slowpath ([kernel.kallsyms])
        7fff811932d5 __alloc_pages_nodemask ([kernel.kallsyms])
        7fff811d7a68 alloc_pages_current ([kernel.kallsyms])
        7fff811e27f5 new_slab ([kernel.kallsyms])
        7fff811e40fc ___slab_alloc ([kernel.kallsyms])
        7fff816adaf1 __slab_alloc ([kernel.kallsyms])
        7fff811e609b kmem_cache_alloc ([kernel.kallsyms])
        7fff812778ed proc_alloc_inode ([kernel.kallsyms])
        7fff812234d0 alloc_inode ([kernel.kallsyms])
        7fff81225771 new_inode_pseudo ([kernel.kallsyms])
        7fff812257d9 new_inode ([kernel.kallsyms])
        7fff8127bc1e proc_pid_make_inode ([kernel.kallsyms])
        7fff812800e5 proc_fd_instantiate ([kernel.kallsyms])
        7fff8127c54c proc_fill_cache ([kernel.kallsyms])
        7fff812802dd proc_readfd_common ([kernel.kallsyms])
        7fff812803f5 proc_readfd ([kernel.kallsyms])
        7fff8121c246 vfs_readdir ([kernel.kallsyms])
        7fff8121c665 sys_getdents ([kernel.kallsyms])
        7fff816c2715 system_call_fastpath ([kernel.kallsyms])
               bab95 __getdents64 (/usr/lib64/libc-2.17.so)

It seems that os is carrying on page reclaimation. But I don't know since there are enough free pages, why could page reclaimation ocurr?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.