Your SlideShare is downloading. ×
サバフェス! 2015 Spring LT資料
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

サバフェス! 2015 Spring LT資料

0
views

Published on

サバフェス! 2015 Spring LT資料

サバフェス! 2015 Spring LT資料


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
0
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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