Submit Search
Upload
サバフェス! 2015 Spring LT資料
•
13 likes
•
8,331 views
Takashi Takizawa
Follow
サバフェス! 2015 Spring LT資料
Read less
Read more
Software
Report
Share
Report
Share
1 of 40
Download now
Download to read offline
Recommended
JAWS-UG横浜紹介『我らが横浜!』
JAWS-UG横浜紹介『我らが横浜!』
宗 大栗
WordPress on C4SA
WordPress on C4SA
tama200x Kobayashi
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
DNS RFCの歩き方(短縮版)
DNS RFCの歩き方(短縮版)
Takashi Takizawa
BIND of Summer (2017-04-13)
BIND of Summer (2017-04-13)
Takashi Takizawa
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
Takashi Takizawa
nginx入門
nginx入門
Takashi Takizawa
nginxの紹介
nginxの紹介
Takashi Takizawa
Recommended
JAWS-UG横浜紹介『我らが横浜!』
JAWS-UG横浜紹介『我らが横浜!』
宗 大栗
WordPress on C4SA
WordPress on C4SA
tama200x Kobayashi
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
DNS RFCの歩き方(短縮版)
DNS RFCの歩き方(短縮版)
Takashi Takizawa
BIND of Summer (2017-04-13)
BIND of Summer (2017-04-13)
Takashi Takizawa
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
Takashi Takizawa
nginx入門
nginx入門
Takashi Takizawa
nginxの紹介
nginxの紹介
Takashi Takizawa
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Takashi Takizawa
RFCについての復習
RFCについての復習
Takashi Takizawa
DNS RFC系統図
DNS RFC系統図
Takashi Takizawa
DNSのRFCの歩き方
DNSのRFCの歩き方
Takashi Takizawa
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -
Takashi Takizawa
#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)
Takashi Takizawa
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
Takashi Takizawa
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
Takashi Takizawa
Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)
Takashi Takizawa
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
Takashi Takizawa
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門
Takashi Takizawa
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
Takashi Takizawa
DNS再入門
DNS再入門
Takashi Takizawa
#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介
Takashi Takizawa
hbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassin
Takashi Takizawa
More Related Content
More from Takashi Takizawa
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Takashi Takizawa
RFCについての復習
RFCについての復習
Takashi Takizawa
DNS RFC系統図
DNS RFC系統図
Takashi Takizawa
DNSのRFCの歩き方
DNSのRFCの歩き方
Takashi Takizawa
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -
Takashi Takizawa
#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)
Takashi Takizawa
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
Takashi Takizawa
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
Takashi Takizawa
Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)
Takashi Takizawa
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
Takashi Takizawa
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門
Takashi Takizawa
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
Takashi Takizawa
DNS再入門
DNS再入門
Takashi Takizawa
#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介
Takashi Takizawa
hbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassin
Takashi Takizawa
More from Takashi Takizawa
(16)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
RFCについての復習
RFCについての復習
DNS RFC系統図
DNS RFC系統図
DNSのRFCの歩き方
DNSのRFCの歩き方
initとプロセス再起動
initとプロセス再起動
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
DNS再入門
DNS再入門
#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介
hbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassin
サバフェス! 2015 Spring LT資料
1.
サバフェス! 2015 Spring
2015-03-26 Lightning Talk @ttkzw 滝澤隆史 チーム名: zzz
2.
私は誰 • ⽒氏名: 滝澤
隆史 @ttkzw • 所属: 株式会社ハートビーツ ▫ 普段はサーバの構築や運⽤用をやっています。 • チーム名: zzz ▫ メンバー: @ttkzw ⼀一⼈人チーム ▫ hubでギネスを飲みながらサバフェスの申し込み 画⾯面を⾒見見ていて、チーム名を考えていたら、間 違ってPOSTしてしまった。 ▫ 開催⽇日近くにチーム名の⼀一覧が公開されるまで、 どのチーム名で申し込んだか思い出せなかった。 2 2015/03/26サバフェス! 2015 Spring
3.
注意事項 • 本資料料はIDCフロンティア様主催の「サバフェ ス! 2015
Spring」に特化した内容です。 ▫ https://2015spring.serverfesta.info/ • ここで紹介したパラメータを参考にする場合は その内容を理理解した上でご利利⽤用ください。 • 環境や状況によって最適なパラメータは異異なり ますので、万が⼀一ここに書かれたパラメータを 適応して問題が起きたときても何も保証いたし ません。 2015/03/26サバフェス! 2015 Spring 3
4.
2015/03/26サバフェス! 2015 Spring 4
5.
READMEに書いてあるパスワードが 実際のものと違ってログインできな かった。 2015/03/26サバフェス! 2015 Spring 5
6.
ベンチマークが始まらなかった。 2015/03/26サバフェス! 2015 Spring 6 3⽉月6⽇日(⼟土)0:00〜~ アイドルマスター シンデレラガールズ が始まったのでTVを ⾒見見始めた。
7.
やはりベンチマークが始まらなかった。 2015/03/26サバフェス! 2015 Spring 7 たぶん、深夜2:30頃
8.
⼼心が折れかかっていたが、 4⽇日⽬目にしてやっと1回だけ通った。 2015/03/26サバフェス! 2015 Spring 8 3⽉月8⽇日0時過ぎに実 ⾏行行したもの
9.
その後、2回⽬目のベンチマークがとれ ないまま第1陣が終了了した。 2015/03/26サバフェス! 2015 Spring 9 終了了後の運営による計測 期間中に成功した ただ1回の計測
10.
「延⻑⾧長戦」では快適になりました。 運営の皆様、ありがとうございます。 2015/03/26サバフェス! 2015 Spring 10
11.
2015/03/26サバフェス! 2015 Spring 11
12.
Percona 5.6 • 元々Perconaを採⽤用する予定だった。 ▫
Perconaは昔からioDrive向けの資料料を出していた のでよいスコアが出るのではと期待。 • 最初は基準値をとりたかったのでMySQL 5.6系 の標準的な設定を⾏行行い、ベンチマークを取ろう とした。 • ベンチマークが通らなかったので、ローカル環 境で⾊色々調整。 • 3⽇日間経過したが、まったくベンチマークが通 らなかったので、Percona 5.6系にして実施。 2015/03/26サバフェス! 2015 Spring 12
13.
2015/03/26サバフェス! 2015 Spring 13
14.
⽅方針 • 可能な限りInnoDBバッファプールにメモリを割 り当てる。 ▫ キャッシュメモリを使わせない。 –
→Direct I/Oでがんばる • 無駄な処理理を⾏行行わせない。 • フラッシュ処理理を調整 ▫ 当初は⼩小まめに吐き出す⽅方針だったが、最後の⽅方 は如何に処理理のタイミングを遅らせるかになった。 • ioDriveの気持ちになって考える。 • InnoDBの気持ちになって考える。 2015/03/26サバフェス! 2015 Spring 14
15.
低レイヤーを攻めろ! ディスクI/O、ネットワークI/O、メモリ周り 2015/03/26サバフェス! 2015 Spring 15
16.
OS周り: 不不要なものを無効化 • SELinuxをdisabledにして不不要な処理理をバイパス。 ▫
/etc/sysconfig/selinux – SELINUX=disabled • 不不要なサービスを停⽌止して、メモリを確保。 ▫ chkconfig postfix off ▫ chkconfig crond off ▫ chkconfig atd off ▫ chkconfig auditd off ▫ chkconfig abrtd off ▫ chkconfig iptables off ▫ chkconfig ip6tables off ▫ chkconfig rsyslog off 2015/03/26サバフェス! 2015 Spring 16
17.
OS周り: パラメータチューニング • /etc/sysctl.conf ▫
vm.swappiness = 0 ▫ vm.dirty_background_ratio = 5 ▫ vm.dirty_ratio = 10 ▫ net.core.wmem_default = 1048576 ▫ net.core.rmem_default = 1048576 ▫ net.core.wmem_max = 4194304 ▫ net.core.rmem_max = 4194304 ▫ net.ipv4.tcp_mem = 6291456 6291456 6291456 ▫ net.ipv4.tcp_wmem = 4096 1048576 4194304 ▫ net.ipv4.tcp_rmem = 4096 1048576 4194304 2015/03/26サバフェス! 2015 Spring 17
18.
OS周り: ファイルシステム • ファイルシステム ▫
EXT4を採⽤用。XFSを試したが悪化した。 • マウントオプション ▫ noatime,nodiratime → atimeの更更新を抑制 ▫ discard → TRIMを使⽤用 ▫ nobarrier → 改善しなかったので不不採⽤用 2015/03/26サバフェス! 2015 Spring 18
19.
ioDriveの設定 • /etc/modprobe.d/iomemory-vsl.conf ▫ options
iomemory-vsl use_workqueue=0 – I/Oスケジューラーの処理理をバイパスさせる。 • /etc/sysconfig/iomemory-vsl ▫ ENABLED=1 ▫ FIO_DRIVER_MOD_OPTS="use_workqueue=0" ▫ MOUNTS="/fioa" • /etc/fstab ▫ /dev/fioa /fioa ext4 defaults,discard,noatime,nodiratime,noauto 0 0 – noautoを付与 2015/03/26サバフェス! 2015 Spring 19
20.
2015/03/26サバフェス! 2015 Spring 20
21.
my.cnf • datadir=/fioa/mysql • socket=/fioa/mysql/mysql.sock •
tmpdir=/fioa/tmp ▫ テンポラリテーブルなどをioDriveに • user=mysql • skip-name-resolve ▫ 名前解決処理理を無効化 2015/03/26サバフェス! 2015 Spring 21
22.
ネットワーク • max_connections=40 ▫ tpcc_mysqlの-cが30なので、30+αに。 •
max_allowed_packet=4M ▫ デフォルト値のまま • net_buffer_length=256K ▫ 少し⼤大きめに 2015/03/26サバフェス! 2015 Spring 22 mysql> show global status like 'Byte%'; +----------------+-------------+ | Variable_name | Value | +----------------+-------------+ | Bytes_received | 2420522140 | | Bytes_sent | 12714377760 | +----------------+-------------+ 2 rows in set (0.00 sec)
23.
NUMA • flush_caches=ON (mysqld_safe) •
numa_interleave=ON (mysqld_safe) • innodb_buffer_pool_populate=ON 2015/03/26サバフェス! 2015 Spring 23 ※ https://www.percona.com/doc/percona-server/5.6/performance/ innodb_numa_support.html
24.
スレッドプールの利利⽤用 • thread_handling=pool-of-threads • thread_pool_size=64 2015/03/26サバフェス!
2015 Spring 24 ※ http://www.percona.com/doc/percona-server/5.6/performance/ threadpool.html
25.
その他 • performance_schema=OFF • table_open_cache=1600 •
table_open_cache_instances=16 • query_cache_type=0 • query_cache_size=0 2015/03/26サバフェス! 2015 Spring 25 400あれば⼗十分なはず。 しかし、調整できてい ない。 | Open_files | 16 | | Open_streams | 0 | | Open_table_definitions | 76 | | Open_tables | 360 | | Opened_files | 149 | | Opened_table_definitions | 76 | | Opened_tables | 367 | | Table_open_cache_hits | 56660865 | | Table_open_cache_misses | 367 | | Table_open_cache_overflows | 0 | 更更新が多いので無効に。
26.
2015/03/26サバフェス! 2015 Spring 26
27.
レギュレーション • innodb_doublewrite • innodb_flush_log_at_trx_commit=1 2015/03/26サバフェス!
2015 Spring 27
28.
お約束 • innodb_file_per_table 2015/03/26サバフェス! 2015
Spring 28
29.
Direct I/O • innodb_flush_method=ALL_O_DIRECT ▫
Percona, MariaDB向け • innodb_log_block_size=4096 • innodb_disable_sort_file_cache=ON 2015/03/26サバフェス! 2015 Spring 29 ※ http://www.percona.com/doc/percona-server/5.6/scalability/ innodb_io.html
30.
バッファプール • innodb_buffer_pool_size=28G ▫ SWAPが発⽣生するぎりぎりで、可能な限り割り当 てた。 •
innodb_buffer_pool_instances=8 ▫ デフォルト値が性能が出た。 2015/03/26サバフェス! 2015 Spring 30
31.
I/Oスレッド • innodb_write_io_threads=20 • innodb_read_io_threads=20 2015/03/26サバフェス!
2015 Spring 31
32.
フラッシュ • innodb_flush_neighbors=0 • innodb_adaptive_flushing=1 •
innodb_io_capacity=8000 • innodb_io_capacity_max=9500 • innodb_lru_scan_depth=2000 2015/03/26サバフェス! 2015 Spring 32 ここら辺の調整に⼀一 番時間がかかった。
33.
第1陣の中断時の設定はここまで • 約39000tpmくらい • ここまでは正統的なチューニングかな。 •
もうちょい頑張っても1000〜~2000tpmくらい しか増えないかなと。 • ということで、延⻑⾧長戦は⽅方針を転換 2015/03/26サバフェス! 2015 Spring 33
34.
2015/03/26サバフェス! 2015 Spring 34
35.
ログ • innodb_log_file_size=512M • innodb_log_files_in_group=14 ▫
クラッシュリカバリを考慮すると⼤大きく割り当て るのはよくないが、短時間のスパイクを処理理する のには効果的。 ▫ ローカルベンチマークで5000tpm増えた。 2015/03/26サバフェス! 2015 Spring 35
36.
2015/03/26サバフェス! 2015 Spring 36 -rw-rw----
1 mysql mysql 536870912 3⽉月 22 01:05 2015 ib_logfile0 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 00:52 2015 ib_logfile1 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 00:48 2015 ib_logfile10 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 00:48 2015 ib_logfile11 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 00:48 2015 ib_logfile12 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 00:48 2015 ib_logfile13 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 00:53 2015 ib_logfile2 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 00:55 2015 ib_logfile3 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 00:56 2015 ib_logfile4 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 00:58 2015 ib_logfile5 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 00:59 2015 ib_logfile6 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 01:01 2015 ib_logfile7 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 01:03 2015 ib_logfile8 -rw-rw---- 1 mysql mysql 536870912 3⽉月 22 01:03 2015 ib_logfile9 最⾼高スコアを出したときのベンチバーク後 のログファイルのタイムスタンプ
37.
フラッシュ • innodb_flushing_avg_loops=1000 ▫ ローカルベンチマーク(5分計測)で500tpm増えた。 •
innodb_max_dirty_pages_pct=90 ▫ ローカルベンチマークで1500tpm増えた。 2015/03/26サバフェス! 2015 Spring 37
38.
2015/03/26サバフェス! 2015 Spring 38
39.
効果が無かったこと • XFS • EXT4のnobarrierオプション •
クエリーキャッシュ • /etc/init.d/mysqlで起動前にベンチマーク⽤用の ファイルコピーのキャッシュを解放するために 次のコマンドを挿⼊入してみたが効果が無かった。 ▫ sync; echo 3 > /proc/sys/vm/drop_caches 2015/03/26サバフェス! 2015 Spring 39
40.
2015/03/26サバフェス! 2015 Spring 40
Download now