amavisd-new with AVG 8.5 free Edition for Linux

I’m evaluating the AVG 8.5 free Edition for Linux on Centos 5. It’s fairly easy step to setup. Just download the installer, install, update virus definition database.tweak some avgtcpd’s config and voila!! it’s running smoothly. Here’s the step everyone might want to know.

Download avg 8.5 installer

$ wget -t0 -c http://download.avgfree.com/filedir/inst/avg85flx-r863-a3205.i386.rpm

Install

$ sudo rpm -ivh avg85flx-r863-a3205.i386.rpm

start the service (in this case i was using init.d script)

$ sudo /etc/init.d/avgd start

Verify if avgtcpd is running

$ sudo netstat -pltn | grep avgtcpd
tcp        0      0 127.0.0.1:54321             0.0.0.0:*                   LISTEN      10839/avgtcpd
tcp        0      0 127.0.0.1:54322             0.0.0.0:*                   LISTEN      10839/avgtcpd

Update virus definition database

$ sudo avgupdate

Nginx worker_cpu_affinity

By Default, without setting worker_cpu_affinity directive in nginx.conf, linux kernel will spread all nginx’s worker all over CPUs.

I have 4 logical CPUs on my server, which is CPU0 – CPU3

Cpu0  :  2.9%us,  0.9%sy,  0.0%ni, 88.9%id,  7.2%wa,  0.0%hi,  0.2%si,  0.0%st
Cpu1  :  1.8%us,  0.6%sy,  0.0%ni, 95.3%id,  2.2%wa,  0.0%hi,  0.1%si,  0.0%st
Cpu2  :  2.4%us,  0.7%sy,  0.0%ni, 94.3%id,  2.5%wa,  0.0%hi,  0.1%si,  0.0%st
Cpu3  :  1.9%us,  0.7%sy,  0.0%ni, 96.7%id,  0.6%wa,  0.0%hi,  0.0%si,  0.0%st

Using default setting, nginx’s worker always bind to those 4 logical CPUs. which is has “f” bitmask

# taskset -p 12348
pid 25748's current affinity mask: f
# taskset -p 12349
pid 25749's current affinity mask: f
# taskset -p 12351
pid 25751's current affinity mask: f
# taskset -p 12352
pid 25752's current affinity mask: f
# taskset -p 12353
pid 25753's current affinity mask: f

CPU affinity is represented as a bitmask (given in hexadecimal), with the lowest order bit corresponding to the first logical CPU and the highest order bit corresponding to the last logical CPU.
Examples: