Skip to content

Latest commit

 

History

History
61 lines (41 loc) · 1.95 KB

README.md

File metadata and controls

61 lines (41 loc) · 1.95 KB

Pixiv-intern2014w

ぴくしぶインターンGithub選考課題

##初期スコア #./benchmarker bench --workload N --init /home/isucon/init.sh success:7310 fail:0 score:1579 worload = 1 success:16020 fail:0 score:3462 workload = 4 ##phpの変更点 locked_users内でforeach毎に同じSQLが宣言されていたのでforeach外で宣言するように変更

success:7360	fail:0	score:1590 workload = 1
success:16060	fail:0	score:3471 workload = 4

同じようにbanned_ipsでも同一の処理を行いました

success:7860	fail:0	score:1658 workload = 1
success:15430	fail:0	score:3334 worload = 4

ここまでやった後

/report は1分以内にレスポンスを返さなければならない

という文より集計の高速化はそれほど重要では無いと判断し、ベンチ指標の

HTTP GET/POST リクエストの成功数をベースにする。

から表示のページ表示の高速化に焦点を変更しました。

使われているライブラリのlimonadeはページレンダリングにしか使われておらず、大きなwebサイトでも無かったので limonadeを削除しました。

success:7800	fail:0	score:1685 workload = 1
success:15920	fail:0	score:3440 workload = 4

##MYSQL周り x3largeと非常に大きいインスタンスでやっているのでdbが沢山メモリを使えるように変更

key_buffer_size = 32M
sort_buffer_size = 2M
read_buffer_size = 2M
query_cache_type = 1

max_connections=450
thread_cache=450

innodb_buffer_pool_size = 1024M

##エフェメラルポートのレンジ拡張 デフォルトだとTCP通信に使えるポート数が多くないのでsysctl.confに設定を追記

net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.ip_local_port_range = 20000 61000

#最終スコア success:37410 fail:0 score:8081 success:71180 fail:0 score:15377