2015/07/16

FreakOut DSP 入札サーバの CPU 使用率を 30% 削減する Performance Tuning

はじめに




  FreakOut  RTB  DSP RTB  DSP  RTB / 

 FreakOut DSP 調 Web  () DSP  CPU 



  CPU 使 30%  Performance Tuning 







  50ms (50ms or die)FreakOut DSP  Perl  Nginx + Starlet  @myfinder 3



50msPerl/

 Starlet  Prefork  Web App  worker process 

Tuning 



htopmpstat -P ALL  Starlet  worker process 使 worker process  CPU (migration)  Linux Kernel  Process Scheduler  Prefork  CPU 
 CPU 使 Context Switch Context Swtich  CPU Cache 使
  CPU  CPU Cache 使

 CPU Cache  Performance Tuning 2

Tuning1. worker process 




 worker process  sched_setaffinity  CPU  CPU worker process  CPU 


Tuning2. Linux Kernel Scheduler Parameter 調




 Linux Kernel  Scheduler 調 Parameter 

  sched_min_granularity_ns  Process Scheduler 1sched_min_granularity_ns  Context Switch Context Switch 

  Parameter  sched_wakeup_granularity_ns  wakeup  sleep  Context Switch 調 Parameter  Context Switch Context Switch  sched_min_granularity_ns  CPU memcached wakeup/sleep  Context Switch 



  


  Tuning  

"50ms or die"  "50ms"  OS Scheduler Context Switch  Context Switch CPU Cache Hit Rate  CPU 使 



 Tuning  tuned tuned-adm  Profile: throughput-performance tuned-adm   Scheduler Parameter  Parameter 



  sched_min_granurarity_ns : 10000

  sched_wakeup_granurarity_ns : 15000



Scheduler Parameter  doc/Documentation/scheduler/sched-design-CFS.txt Linux Kernel Watch  Kernel 



  Tuning 


Tuning 




 Tuning 1.  20%Tuning 2.  10%  30%  CPU 使

  30ms  20ms 


: Tuning 1.  Erlang VM(BEAM)




 Starlet  worker process  Erlang VM(BEAM) Erlang VM  Scheduler Thread (+sbt) 5% ()





  Tuning  Starlet  CPU 使 30%  CPU  Tuning 





- 

- CPU Cache  CPU  Context Switch  Tuning 

-  CPU 使 30% 



0 件のコメント:

コメントを投稿