This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

[9.0044-33] Spikes of High CPU and memory

Hi All

I am using v9.0044-33 with UTM 120 rev 5. I am also using disk as part of the htp_local_db

It seems that the box is spiking on cpu and the memory is high .I have attached the relevant pic

As part of the troubleshooting I used perf top
Results 
  
   PerfTop:    1403 irqs/sec  kernel:22.1%  exact:  0.0% [1000Hz cycles],  (all, 2 CPUs)
-------------------------------------------------------------------------------------------------------------------------------------

    58.13%  pngquant                [.] 0x558a
     4.60%  libz.so.1.2.3           [.] longest_match
     2.41%  libpng12.so.0.31.0      [.] 0xf93c
     2.21%  [kernel]                [k] read_hpet
     1.40%  [unknown]               [.] 0x8050ed3
     1.07%  libz.so.1.2.3           [.] deflate_slow
     0.97%  libc-2.11.3.so          [.] msort_with_tmp
     0.93%  libcairo.so.2.10800.8   [.] unpremultiply_data
     0.68%  perf                    [.] 0x1e000
     0.59%  libc-2.11.3.so          [.] memcpy
     0.58%  libexpat.so.1.5.2       [.] 0xf9e6
     0.56%  libz.so.1.2.3           [.] fill_window
     0.48%  libfontconfig.so.1.3.0  [.] .L110
     0.47%  ld-2.11.3.so            [.] do_lookup_x
     0.39%  libc-2.11.3.so          [.] _int_malloc
     0.36%  ntpd                    [.] 0x1d013
     0.36%  libfreetype.so.6.3.18   [.] TT_RunIns
     0.33%  libfreetype.so.6.3.18   [.] 0x17a25
     0.33%  libfontconfig.so.1.3.0  [.] FcCompareFamily
     0.32%  libasapsdk.so           [.] 0x20c35
     0.29%  libc-2.11.3.so          [.] strstr
     0.27%  libz.so.1.2.3           [.] adler32
     0.24%  libperl.so              [.] 0x101f1f
     0.22%  libc-2.11.3.so          [.] __i686.get_pc_thunk.bx
     0.21%  postgres                [.] 0x2b7d4c
     0.20%  libpixman-1.so.0.16.0   [.] pixman_rasterize_edges
     0.20%  libc-2.11.3.so          [.] malloc
     0.20%  libc-2.11.3.so          [.] strcmp
     0.19%  [kernel]                [k] __kmalloc
     0.19%  libc-2.11.3.so          [.] __memset_ia32
     0.18%  libz.so.1.2.3           [.] inflate_fast
     0.18%  [kernel]                [k] unmap_vmas
     0.17%  [vdso]                  [.] 0x55576431
     0.16%  [kernel]                [k] __schedule
     0.16%  [kernel]                [k] page_fault
     0.16%  [kernel]                [k] ia32_sysenter_target
     0.16%  libpthread.so.0         [.] 0xefbf
     0.15%  [kernel]                [k] timerqueue_add
     0.14%  libc-2.11.3.so          [.] _int_free
     0.14%  libpixman-1.so.0.16.0   [.] pixman_edge_init
     0.14%  [kernel]                [k] _raw_spin_lock
     0.14%  [kernel]                [k] hpet_legacy_next_event
     0.14%  libc-2.11.3.so          [.] free


what is that process and why it's inroducing spikes to the box?

/root # top -b -n 1 | head -n 12  | tail -n 5
13298 root      39  19  3640 2080  632 R     90  0.1   0:00.73 pngquant
 3729 root      20   0 11528 4788 1772 S     12  0.2  91:02.42 selfmonng.plx
 4162 root      20   0 10140 6212 1668 S      9  0.3  23:28.03 dns-resolver.pl
13299 root      20   0  2808 1212  804 R      9  0.1   0:00.07 top
 4686 root      20   0 32940  11m 3028 S      4  0.6 163:57.32 ctasd


Memory is normal at the moment: 

/root # ps auxf | sort -nr -k 4 | head -5
810      28489  1.0 18.9 1205400 387520 ?      Ssl  12:18   3:07 /var/chroot-http/usr/bin/httpproxy -f -c /var/chroot-http -u httpproxy
root      4324  1.8 12.3 339384 253364 ?       Ssl  16:27   0:58 /usr/bin/cssd -d
snort     5520  0.3  5.5 385324 113612 ?       S


Most of the swap is allocated to the HTTP proxy (Run top then press 'O' (capital letter o) followed by 'p' then 'enter'. Now processes should be sorted by their swap usage.)

top - 17:22:28 up 3 days,  8:16,  1 user,  load average: 0.67, 1.22, 1.30
Tasks: 344 total,   1 running, 341 sleeping,   0 stopped,   2 zombie
Cpu(s):  2.4%us,  2.7%sy,  0.0%ni, 94.6%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2048484k total,  1666536k used,   381948k free,     3732k buffers
Swap:  1048572k total,   401552k used,   647020k free,   606832k cached

  PID USER      PR  NI  VIRT  RES  SHR S   %CPU %MEM    TIME+  SWAP COMMAND
28489 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:36.18 799m httpproxy
28490 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:07.72 799m httpproxy
28491 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:00.74 799m httpproxy
28505 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:00.14 799m httpproxy
28508 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:00.75 799m httpproxy
28509 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:00.83 799m httpproxy
28510 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:00.50 799m httpproxy

28511 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:00.47 799m httpproxy
28512 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:00.43 799m httpproxy
28513 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:00.43 799m httpproxy
28514 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:00.41 799m httpproxy
28515 httpprox  20   0 1177m 377m 1312 S      0 18.9   0:00.45 799m httpproxy


There are  too many child-processes for httpproxy is this normal?


This thread was automatically locked due to age.
  • no it doesn't.  Astaro is Linux based not winders.  To MS's credit they now have win7 to where regular reboots are also not usually required.  The issues here are not enough ram..plain and simple.  Code optimization is only going to go so far....the realistic minimum for UTM 9+ now just with the enormous featureset is 4 gigs.  That will only continue to grow.


    Problem was CPU usage not 2GB of RAM... When CPU usage went down ASG320 is working fine with 150 users.
    Attached some graph.

    ps. From these reports:
    CPU usage is at most when people come to work in the morning, before dinner time and before the working day ends...
    Also these 3 points are times when people browse internet more than ever in the day...
  • Hi Wingman,
    I had the same problem with a 4gb utm until I removed the cffs from memory, since then swap has hardly moved.

    Ian


    good to know.I will try this and post back. I am using http_db disk option. I will remove it completely and see how it goes
  • Hi Wingman,
    I had the same problem with a 4gb utm until I removed the cffs from memory, since then swap has hardly moved.

    Ian


    what all do you have running and how many users?  I currently have no swappiness tweak, two snorts and http in mem mode and staying at @60% ram and zero swap.

    Owner:  Emmanuel Technology Consulting

    http://etc-md.com

    Former Sophos SG(Astaro) advocate/researcher/Silver Partner

    PfSense w/Suricata, ntopng, 

    Other addons to follow

  • Problem was CPU usage not 2GB of RAM... When CPU usage went down ASG320 is working fine with 150 users.
    Attached some graph.

    ps. From these reports:
    CPU usage is at most when people come to work in the morning, before dinner time and before the working day ends...
    Also these 3 points are times when people browse internet more than ever in the day...


    part of your cpu issue IS swap which IS ram based.  Sure there's probably something else to go along with it but until ram usage is under control other issues will present itself..

    Owner:  Emmanuel Technology Consulting

    http://etc-md.com

    Former Sophos SG(Astaro) advocate/researcher/Silver Partner

    PfSense w/Suricata, ntopng, 

    Other addons to follow

  • Just to give everyone an idea i also have a v8 vm identically configured and it only uses 38% ram with the same configuration.  Of course if i tried this in two gigs i'd be using either cloudy or disk http proxy.

    Owner:  Emmanuel Technology Consulting

    http://etc-md.com

    Former Sophos SG(Astaro) advocate/researcher/Silver Partner

    PfSense w/Suricata, ntopng, 

    Other addons to follow

  • Problem was CPU usage not 2GB of RAM... When CPU usage went down ASG320 is working fine with 150 users.
    Attached some graph.

    ps. From these reports:
    CPU usage is at most when people come to work in the morning, before dinner time and before the working day ends...
    Also these 3 points are times when people browse internet more than ever in the day...


    those cpu spikes with 150 users also say the machine is beginning to get overloaded.  it is not constant but if you get any bigger you'll need either a larger UTM or a better custom box.

    Owner:  Emmanuel Technology Consulting

    http://etc-md.com

    Former Sophos SG(Astaro) advocate/researcher/Silver Partner

    PfSense w/Suricata, ntopng, 

    Other addons to follow

  • Hi William,
    I have most of the functions active except WAF, mail encryption, site2site and HAcluster and about 41 active licences. Of those 41 probably 30 are real, some are double ups for IPv6. About 6 are really active the rest are things like foxtel, blueray player, network devices and visiting laptops and phones.
    I have 2 external ADSL connections, not in fail over. Both peak at around 4.5mb/s download.
    2 APs (30 & 50)
    2 VLANs
    http proxy in transparent mode
    mail proxy pop/smtp
    application control
    VoIP security
    socks proxy

    CPU sits around 1% rising to about 5% for short times.

    Swap around 1% and stable
    Memory around 54%

    Ian
  • Hi William, with 4GB, are you seeing very little swap used (with or without your swappiness tweak)?

    I ask because Wingman's graphs are showing high RAM usage (close to 2GB) PLUS high swap usage (close to 2GB?).

    Thanks,
    Barry
  • no swap w/o swappiness tweak and 2 snort instances and mem http content db..[:)]  with 2 gigs in v9 the system goes into major swappage.  I have to put http proxy in cloudy mode..loose a snort AND use my swappiness tweak to keep swap from cratering the system.

    Owner:  Emmanuel Technology Consulting

    http://etc-md.com

    Former Sophos SG(Astaro) advocate/researcher/Silver Partner

    PfSense w/Suricata, ntopng, 

    Other addons to follow

  • I have turned off local content database which eases the cpu load a little but there is something wrong with the 9.002+ code base. V9 GA was far from perfect but throwing memory at it seemed to fix the problem. Lately however the load average seems to stay high and memory keeps on going up. 
    I got tired of rebooting so I have cron jobs restarting the proxy
    /var/mdw/scripts/httpproxy restart
     at the beginning of the day and during lunch break. In addition, I also dump my disk cache after a few minutes of proxy restart to reclaim some of the cached ram from the kernel.
    sync; echo 3 > /proc/sys/vm/drop_caches
     
    I know its a dirty dirty way of running a system and far from being optimum but the kernel is not doing its job managing the cache as it should.
    And of course I always run all my astaro machines with swappiness at zero.
    echo 0 > /proc/sys/vm/swappiness

    [[:(]] [;)]

    Edit: Sorry, forgot to mention that if the swap is increasing to no end, you can always add a cron job to reclaim that also by adding something like
    /sbin/swapoff -a; /sbin/swapon -a
     after the proxy restart [[:(]] Keep in mind that turning off swap might get you the dreaded OOM killer so be careful using it specially if most of your swap and ram have been consumed. All these commands can be run at any time as needed with or without setting up cron jobs but this is no way to run a production or even a home system.