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.
Parents
  • I had to reduce my v9 vm to 2 gigs because i needed the two gigs for another vm.  I just got done seeing a load spike of 6 with postgres pegging i/o wait AND also now a jump in swap usage to 20%.  During this time of heavy swapping my internet was frozen.  I do ahve my http proxy on cloudy, two snorts, and my vm.swappiness=0 tweak.  Two gigs isn't going to work until sophos either massively cleans up the code(not sure how they can do that with the featureset) or make the minimum 4 gigs(the more realistic answer IMO).  Once i buy some more ram for my server i'll be able to give utm9 4 gigs.


    Two snort instances with only 2GB of mem is not recommended an counterproductive. Set back to 1 Instance and swapping should be gone...Why are people messing around with unsupported under the hood options and are wondering themselves why stuff is running bad? Local cfdb and more snort instances and other tweaks may scale up things nicely, IF the base hardware has enough ram and fast disk. Otherwise...Swappiness=0 with a 2GB Appliance and Full UTM makes things even worse...
Reply
  • I had to reduce my v9 vm to 2 gigs because i needed the two gigs for another vm.  I just got done seeing a load spike of 6 with postgres pegging i/o wait AND also now a jump in swap usage to 20%.  During this time of heavy swapping my internet was frozen.  I do ahve my http proxy on cloudy, two snorts, and my vm.swappiness=0 tweak.  Two gigs isn't going to work until sophos either massively cleans up the code(not sure how they can do that with the featureset) or make the minimum 4 gigs(the more realistic answer IMO).  Once i buy some more ram for my server i'll be able to give utm9 4 gigs.


    Two snort instances with only 2GB of mem is not recommended an counterproductive. Set back to 1 Instance and swapping should be gone...Why are people messing around with unsupported under the hood options and are wondering themselves why stuff is running bad? Local cfdb and more snort instances and other tweaks may scale up things nicely, IF the base hardware has enough ram and fast disk. Otherwise...Swappiness=0 with a 2GB Appliance and Full UTM makes things even worse...
Children
  • Two snort instances with only 2GB of mem is not recommended an counterproductive. Set back to 1 Instance and swapping should be gone...Why are people messing around with unsupported under the hood options and are wondering themselves why stuff is running bad? Local cfdb and more snort instances and other tweaks may scale up things nicely, IF the base hardware has enough ram and fast disk. Otherwise...Swappiness=0 with a 2GB Appliance and Full UTM makes things even worse...


    Hi Sacha

    I am noticing high swap and as per my previous posts and I have not messed up with the configuration at all(apart the proxy restart cron job which would probably be something a user can do under normal circumstances every night if needed!). I am using http (no cloud database) and I have recently enabled IPS. I have not specified how many snort instances i would like to run 

    It seems that i am not running any ips instances :S 


    ****:/root # cc get ips num_instances
    0   


    Thanks
  • Two snort instances with only 2GB of mem is not recommended an counterproductive. 
    Each tuned instance of snort only uses a couple of hundred megs and if you have multiple cpus, running multiple instances enhances performance and gives a huge boost to throughput. If the cpu is strong enough multiple snorts should not be a problem. But the kernel swapping so aggressively makes everything else unstable in this configuration.

    Otherwise...Swappiness=0 with a 2GB Appliance and Full UTM makes things even worse...
    Astaro starts swapping very early instead of utilizing all the ram first. All the daemons are swapped out aggressively and the leftover ram is used for disk caching. This is great in theory but doesn't work good on a production server specially for daemons like http proxy etc which are constantly being re-initialized. So now you have swapped everything out and utilized all your free ram for disk caching... anything that needs ram can't get any and more swapping occurs. Swappiness=0 changes this behavior to some extent and has no negative effects on performance.


    ****:/root # cc get ips num_instances
    0   

    Zero means the software makes the decision on the number of instances depending on the number of cores. You can manually change it to 2 and you will have two instances of snort even with a single core cpu (not recommended).

    Edit: Sorry forgot to add... William has 2 snorts because I believe his vm has 2 vcpus assigned and the decision was automatic. He lowered his assigned ram to the vm but astaro doesn't change the initial configuration on the fly if you make hardware changes later.