Find the answer to your Linux question:
Results 1 to 2 of 2
Hi, I am working on Client Server Application on RHEL 5.0 in C++, My Server application use the usbdemon (usb driver to read data from usb) , Now i tested ...
  1. #1
    Just Joined!
    Join Date
    Feb 2009
    Posts
    3

    memory leakage in server application

    Hi,

    I am working on Client Server Application on RHEL 5.0 in C++, My Server application use the usbdemon (usb driver to read data from usb) ,


    Now i tested my server application on two different machine:
    ( Client machine is RHEL 4.7 (32bit) for both server)

    1. RHEL 5.0 (64 bit)

    After running the around 40 hours server machine gets very slow , i checked the memory usage by "free" command which shows that 1GB RAM is completely consumed and .5GB swap memory used

    Then i used the "top" command to identify the memory usage by my application(server) Which was 99mb and it is usual (I am using this much memory to keep my client information)

    But more interestingly "udevd" process was consuming the 280MB memory. Where as initially it was using the 36K.

    2. RHEL 5.0 (32 bit)

    Here everything runs right, My server application taking again 10mb after full load . And more surprisingly "udevd" process is taking 36K memory after 60 hour of testing.

    HERE are my questions


    1. is it memory leakage in my application?
    2. what is the use of "udevd" ?
    3. Why Only 64 bit machine is increasing the memory consumption.


    Thanks in advance

  2. #2
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
    Posts
    8,974
    According to the udevd manpage:
    Code:
    UDEVD(8)                      udevd, udevcontrol                      UDEVD(8)
    
    NAME
           udevd - event managing daemon
    
    SYNOPSIS
           udevd [--daemon]
    
           udevcontrol command
    
    DESCRIPTION
           udevd listens to kernel uevents and passes the incoming events to udev. It
           ensures the right event order and takes care, that events for child devices
           are delayed until the parent has finished the device handling.
    
    OPTIONS
           --daemon
                  Detach and run in the background.
    
           log_priority=value
                  udevcontrol can dynamically set the log level of udevd. Valid values
                  are the numerical syslog priorities or their textual representations:
                  err, info and debug.
    
           stop_exec_queue
                  udevcontrol stops the execution of events from udevd.
    
           start_exec_queue
                  udevcontrol starts the execution of events from udevd.
    
    ENVIRONMENT
           UDEV_LOG
                  Overrides the syslog priority specified in the config file.
    
    AUTHOR
           Written by Kay Sievers <kay.sievers@vrfy.org>.
    
    SEE ALSO
           udev(7)
    
    udev                              August 2005                         UDEVD(8)
    So, since this is just a kernel event manager process, I cannot see any reason why it is leaking in the 64-bit kernel and not the 32-bit one unless there is some other issue with your 64-bit system configuration, such as improperly configured logging, etc.

    There is a possibility that you have stumbled on a bug in the 64-bit kernel, but that you would need to communicate with Red Hat about that since this is an RHEL system.
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
...