Wednesday, March 16, 2016

Tuning Kernel FreeBSD Untuk Optimalisasi Squid


Yak, FreeBSD memang dikenal sebagai OS turunan UNIX yg handal dan enteng di kalangan server, namun untuk mendapatkan performa yang memuaskan tentu ada tips-tips khusus. Diantaranya membuang driver yang tidak perlu, tuning cache, mematikan service yg tidak perlu, dan lain sebagainya. Demikian kira kira yang perlu disetting saat built-up kernel.
options MAXFILES=4096
options NMBCLUSTERS=10240
options MSGMNB=16384
options MSGMNI=42
options MSGSEG=2049
options MSGSSZ=64
options MSGTQL=2048
options SHMSEG=64
options SHMMNI=96
options SHMMAX=2097152
options SHMALL=4096
options MAXDSIZ=”(384*1024*1024)”
options DFLDSIZ=”(384*1024*1024)”
options MAXSSIZ=”(256*1024*1024)”

Tambahkan opsi mountimg partition cache pada /etc/fstab = noatime. Untuk optimalisasi cache_dir pada file squid.conf tambahkan diskd.
Pada sysctl, edit seperti berikut :

kern.maxusers=384
kern.ipc.nmbuf=20480
kern.ipc.nmbclusters=32768
vfs.vmiodirenable=1
kern.ipc.maxsockbuf=2097152
kern.ipc.somaxconn=8192
kern.ipc.maxsockbuf=1048576
kern.ipc.maxsockets=16424
kern.maxfiles=65536
kern.maxfilesperproc=32768
net.inet.tcp.rfc1323=1
net.inet.tcp.delayed_ack=0
net.inet.tcp.sendspace=65535
net.inet.tcp.recvspace=65535
net.inet.udp.recvspace=65535
net.inet.udp.maxdgram=57344
net.local.stream.recvspace=65535
net.local.stream.sendspace=65535
net.inet.icmp.icmplim=300
net.inet.icmp.icmplim_output=0
net.inet.tcp.delayed_ack=0
net.inet.ip.portrange.last=40000
Atau pada saaat akan mengkompile kernel, aturlah parameter-parameter source kernel seperti berikut ini. Pengaturan ini asumsinya RAM yang saya gunakan 512 MB.

options MAXFILES=4096
options NMBCLUSTERS=10240
options MAXDSIZ=”(384*1024*1024)” #Perhatikan pada bagian ini
options DFLDSIZ=”(384*1024*1024)” #Perhatikan pada bagian ini
options MAXSSIZ=”(256*1024*1024)” #Perhatikan pada bagian ini
become for :
maxusers 384
options NBUF=20480
options MAXFILES=65536
options NMBCLUSTERS=32768
options MAXDSIZ=”(640*1024*1024)”
options DFLDSIZ=”(640*1024*1024)”
options MAXSSIZ=”(512*1024*1024)”
(mungkin jika setelah berjalan 1 bulan dg beban penuh dan ternyata memori belum mulai swap ke hardisk angkanya bisa dinaikkan lagi mjd 768,768,640, tapi jangan setinggi memori fisiknya lho)
dg opsi kompilasi (optimasi):
COPTFLAGS=”-O2 -pipe”
dan semua module masuk ke kernel (NO_MODULES=true) (NFS, mouse, usb, pseudo device, debug/verbose support, dll/non-esensial jika memang tidak diperlukan dimatikan saja biar jadi ‘extra langsung dan singset’ kayak atlit sprinter, he he he …).
Terus layanan non-esensial dimatikan saja, cron, inetd, and sendmail, dll di /etc/rc.conf (dari contoh Squid bake-off). http://www.squid-cache.org/Benchmarking/bakeoff-02/SQUID.txt. Kalau bisa periferal yg tidak diperlukan dimatikan juga di BIOS-nya (mis. serial/parallel port, dll).
Terus yg ini nemu di milis tapi saya pribadi belum pernah mencoba (copy-n-paste saja ya, he he ) dan tinggal disesuaikan saja setelah dihitung ulang (kira2 angka2 di atas benar nggak ya?) :
Tambahan Dari Forum
# Options to accelerate Squid
/sbin/sysctl -w vfs.vmiodirenable=1
/sbin/sysctl -w kern.ipc.somaxconn=8192
/sbin/sysctl -w net.inet.tcp.delayed_ack=0
/sbin/sysctl -w net.inet.ip.portrange.last=4000
/sbin/sysctl -w kern.maxfiles=65536
/sbin/sysctl -w net.inet.tcp.sendspace=65535
/sbin/sysctl -w net.inet.tcp.recvspace=65535
# extra
/sbin/sysctl -w kern.ipc.maxsockbuf=2097152
/sbin/sysctl -w kern.ipc.maxsockets=16424
/sbin/sysctl -w kern.maxfilesperproc=32768
/sbin/sysctl -w net.inet.tcp.rfc1323=1
/sbin/sysctl -w net.inet.udp.recvspace=65535
/sbin/sysctl -w net.inet.udp.maxdgram=57344
/sbin/sysctl -w net.local.stream.recvspace=65535
/sbin/sysctl -w net.local.stream.sendspace=65535
/sbin/sysctl -w net.inet.tcp.blackhole=2
/sbin/sysctl -w net.inet.udp.blackhole=1

No comments:

Post a Comment