virtual memory

From: Tolga Evren (tolgae_at_paro.com.tr)
Date: 11/30/05

  • Next message: Lunt, Nick: "RE: RedHat Server hangs... how to troubleshoot."
    Date: Wed, 30 Nov 2005 10:50:24 +0200
    To: "General Red Hat Linux discussion list" <redhat-list@redhat.com>
    
    

    Hi ,

    I have been dealing with virtual memory for a couple of time , have
    asked questions about this in newsgroups , i have one more subject
    which i need to understand. All comments will ve wellcomed.

    My system is redhat linux 2.1 advanced server , itanium , I have
    oracle running on this server , oracle data files reside in OCFS
    (oracle clustered file system ) , other file systems are ext3. Ocfs is
    a special file system developed by oracle , it uses direct IO by
    default.

    I have 8GB. Ram and 4 ia64 cpus.

    For a long time , I have been checking the systems virtual memory usage
    by using sar -B , sar -W , sar -R .

    What I see is , I have always nonzero pagein and out values:

    [oracle@tanidw1 bdump]$ cat /proc/meminfo

            total: used: free: shared: buffers: cached:
    Mem: 8490827776 7971651584 519176192 0 60014592 3406364672
    Swap: 25165725696 53788672 25111937024
    MemTotal: 8291824 kB
    MemFree: 507008 kB
    MemShared: 0 kB
    Buffers: 58608 kB
    Cached: 3323872 kB
    SwapCached: 2656 kB
    Active: 3041504 kB
    Inact_dirty: 2149536 kB
    Inact_clean: 2496 kB
    Inact_target: 1038704 kB
    HighTotal: 0 kB
    HighFree: 0 kB
    LowTotal: 8291824 kB
    LowFree: 507008 kB
    SwapTotal: 24575904 kB
    SwapFree: 24523376 kB
    Committed_AS: 49056320 kB
    HugePages_Total: 0
    HugePages_Free: 0
    Hugepagesize: 262144 kB

    [oracle@tanidw1 bdump]$ sar -B 1 10
    Linux 2.4.18-e.37smp (tanidw1) 11/07/2005

    10:17:41 AM pgpgin/s pgpgout/s activepg inadtypg inaclnpg inatarpg
    10:17:42 AM 28787.00 27500.00 191039 134350 261 65130
    10:17:43 AM 32485.00 20731.00 190990 134350 260 65120
    10:17:44 AM 33271.00 18399.00 191359 134350 256 65193
    10:17:45 AM 27020.00 31023.00 191358 134351 256 65193
    10:17:46 AM 33820.00 23518.00 191440 134351 256 65209
    10:17:47 AM 36264.00 13263.00 191430 134355 262 65209
    10:17:48 AM 32956.00 24286.00 191402 134383 262 65209
    10:17:49 AM 29708.00 30026.00 191475 134388 264 65225
    10:17:50 AM 33324.00 20191.00 191506 134389 264 65231
    10:17:50 AM pgpgin/s pgpgout/s activepg inadtypg inaclnpg inatarpg
    10:17:51 AM 31308.00 21341.00 191202 134529 264 65199
    Average: 31894.30 23027.80 191320 134380 260 65192

    [oracle@tanidw1 bdump]$ sar -r 1 10
    Linux 2.4.18-e.37smp (tanidw1) 11/07/2005
    10:18:07 AM kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached
    kbswpfree kbswpused %swpused
    10:18:08 AM 489280 7802544 94.10 0 54768 3330896
     24523376 52528 0.21
    10:18:09 AM 489280 7802544 94.10 0 54768 3330896
     24523376 52528 0.21
    10:18:10 AM 487728 7804096 94.12 0 54800 3330896
     24523376 52528 0.21
    10:18:11 AM 484352 7807472 94.16 0 54800 3330896
     24523376 52528 0.21
    10:18:12 AM 452688 7839136 94.54 0 54752 3331072
     24523376 52528 0.21
    10:18:13 AM 400336 7891488 95.17 0 54752 3331072
     24523376 52528 0.21
    10:18:14 AM 395936 7895888 95.22 0 54768 3331072
     24523376 52528 0.21
    10:18:15 AM 398752 7893072 95.19 0 54816 3331056
     24523376 52528 0.21
    10:18:16 AM 401168 7890656 95.16 0 54816 3331056
     24523376 52528 0.21
    10:18:16 AM kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached
    kbswpfree kbswpused %swpused
    10:18:17 AM 370432 7921392 95.53 0 54816 3331904
     24523376 52528 0.21
    Average: 436995 7854829 94.73 0 54786 3331082
     24523376 52528 0.21

    Based on these outputs , what I see is , the kbcached value does not
    change , (I have also disk io , although I don't get it here ,
    iostat shows it) so I consider this io as direct IO.

    On the other hand , sar -B shows high values of pgpgin/s pgpgout/s
    . I am trying to understand the reason of paging activity. Is it
    because of caching disk pages inside the page cache , or because of
    anonymous pages or other type of virtual memory pages?

     ( I have read some stuffs considering virtual memory , including the
    types of virtual memory pages , so I am familiar with the concept)

    At first I thought that this paging activity occurs because of disk io.
    The data that is read from the disk is cached inside tha page cache and
    although ocfs is assumed to use direct IO , may be it is not. But after
    checking the sar -r , I decided that it was not. The kbcached value
    is always same (it does not increase when oracle reads data from disk ,
    but it increases when i read files by using dd ) so page cache can not
    the reason of this paging activity .( On sun solaris , vmstat -p
    shows detailed paging activity , so it is easy to see the reason of
    paging , but on linux I have only sar -r)

    Some one told me that , direct IO is direct IO , application does its
    own file caching , and this creates paging activity . ( I do really
    don't understand what does this mean? )

    On the other hand , although I see pageout values, iostat does not show
    any io through the swap devices! So this makes me thing that , pageout
    occurs directly to the files itself , and this can happen when virtual
    memory maps pages directly form the files instead of swap files and
    this type of mapping can occur for file data not for anon pages .

    How can i get more info about the detailed virtual memory usage? Is
    there any tool? Or is there any system functions that i can use with
    c++ or etc which lists the process's paging -out details?I have found
    the gormans 'understanding linux virtual memory book' which is more
    than 700 pages. Studying this book can be helpful ,but I will be
    appreciated if you can help me in order to clarify this issue.

    Kind Regards,

    tolga

     

    -- 
    redhat-list mailing list
    unsubscribe mailto:redhat-list-request@redhat.com?subject=unsubscribe
    https://www.redhat.com/mailman/listinfo/redhat-list
    

  • Next message: Lunt, Nick: "RE: RedHat Server hangs... how to troubleshoot."

    Relevant Pages

    • advice needed .
      ... this to the linux groups, but did not get any response. ... I have been checking the systems virtual memory usage ... At first I thought that this paging activity occurs because of disk io. ...
      (comp.unix.solaris)
    • linux virtual memory clarification is needed
      ... I have been checking the systems virtual memory usage ... Linux 2.4.18-e.37smp 11/07/2005 ... At first I thought that this paging activity occurs because of disk io. ...
      (alt.linux)
    • linux virtual memory clarification is needed
      ... I have been checking the systems virtual memory usage ... Linux 2.4.18-e.37smp 11/07/2005 ... At first I thought that this paging activity occurs because of disk io. ...
      (comp.os.linux.development.system)
    • Re: Not very encouraging :(
      ... Virtual memory works precisely by paging out unused memory (for ... all attempting to approximate the optimal) to disk. ... Oddly enough, Linux ... Like or dislike the features. ...
      (microsoft.public.windowsxp.security_admin)
    • Re: Not very encouraging :(
      ... Virtual memory works precisely by paging out unused memory (for ... all attempting to approximate the optimal) to disk. ... Linux also pages memory to ... Like or dislike the features. ...
      (microsoft.public.windowsxp.security_admin)