SlideShare a Scribd company logo
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
アラートはいつも突然に。
Go Conference 2015 Winter
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
• Kenji Matsuo (@_yokoninaritai)
• eureka, Inc.
• インフラチームのマネージャー兼、
情シス的な仕事してます。
• 猫好きです。
自己紹介
Facebookを利用した
恋愛・婚活マッチングサービス
iOSAndroid
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
目次
• 突然アプリケーションが刺さる
• databaseの接続が残り続ける
• goルーチンが増え続ける
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
突然アプリケーションが
刺さる。
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
Gatlingで負荷テスト中にしてたら、
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
突然 504が大量発生!
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
TCP localhost:9000->localhost:26732 (CLOSE-WAIT)
TCP localhost:9000->localhost:27743 (CLOSE-WAIT)
TCP localhost:9000->localhost:27172 (CLOSE-WAIT)
TCP localhost:9000->localhost:26834 (CLOSE-WAIT)
TCP localhost:9000->localhost:27014 (CLOSE-WAIT)
TCP localhost:9000->localhost:27745 (CLOSE-WAIT)
TCP localhost:9000->localhost:27747 (CLOSE-WAIT)
TCP localhost:9000->localhost:27749 (CLOSE-WAIT)
TCP localhost:9000->localhost:27752 (CLOSE-WAIT)
TCP localhost:9000->localhost:27756 (CLOSE-WAIT)
TCP localhost:9000->localhost:27758 (CLOSE-WAIT)
発生原因
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
TCP localhost:9000->localhost:26732 (CLOSE-WAIT)
TCP localhost:9000->localhost:27743 (CLOSE-WAIT)
TCP localhost:9000->localhost:27172 (CLOSE-WAIT)
TCP localhost:9000->localhost:26834 (CLOSE-WAIT)
TCP localhost:9000->localhost:27014 (CLOSE-WAIT)
TCP localhost:9000->localhost:27745 (CLOSE-WAIT)
TCP localhost:9000->localhost:27747 (CLOSE-WAIT)
TCP localhost:9000->localhost:27749 (CLOSE-WAIT)
TCP localhost:9000->localhost:27752 (CLOSE-WAIT)
TCP localhost:9000->localhost:27756 (CLOSE-WAIT)
TCP localhost:9000->localhost:27758 (CLOSE-WAIT)
増え続けるCLOSE_WAIT
• 大量のリクエストによってCLOSE_WAITが発生する事で、TCP
リソースが枯渇する。
• CPUリソース等は余っていても、TCPのmissing packetを待っ
ている間、TCPリソースが離せなくなるので、実質リソース不
足になってしまう。
• TCPリソースが枯渇すると resource unavailableが発生する
ので、それがstraceに出ていた。
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
• sysctl で tcp まわりの設定変更
• nginx で upstream の keepalive 設定
tcp_keepalive_time
tcp_keepalive_intvl
tcp_keepalive_probes
tcp_tw_reuse
upstream backend {
server 127.0.0.1:9000;
keepalive 16;
}
location / {
  proxy_http_version 1.1;
proxy_set_header Connection ";
proxy_pass http://backend;
}
対策
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
databaseの接続が
残りつ続ける。
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
connection count
突然 too many connectionsが発生
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
自前で実装したSQLのパッケージで、
コネクション をcloseしても、オブジェ
クトにNULLを渡してもコネクション
が残り続けた。
発生原因
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
•pt-killを導入
•go-sql-driver/mysqlに戻した。
# /usr/bin/pt-kill --interval 1 --run-time 1 --match-user read_only --match-command
Sleep --idle-time 300 --print --rds --victims all --kill
sleep のみ 300 秒以上かかったクエリをkillする設定
対策
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
goルーチンが増え続ける。
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
gostats.cpu_num.gomaxprocs 4 1449332314
gostats.goroutine_num.goroutine_num 2537 1449332314
gostats.cgo_call_num.cgo_call_num 8133023 1449332314
gostats.memory.memory_alloc 55116600 1449332314
gostats.memory.memory_total_alloc668213200288 1449332314
gostats.memory.memory_sys 244588504 1449332314
gostats.memory.memory_lookups 7882769 1449332314
gostats.memory.memory_mallocs 12301923213 1449332314
gostats.memory.memory_frees 12301325814 1449332314
gostats.memory.memory_stack 6619136 1449332314
gostats.heap.heap_alloc 55116600 1449332314
gostats.heap.heap_sys 174587904 1449332314
gostats.heap.heap_idle 93872128 1449332314
gostats.heap.heap_inuse 80715776 1449332314
gostats.heap.heap_released 43384832 1449332314
gostats.heap.heap_objects 597399 1449332314
gostats.gc.gc_next 80257488 1449332314
gostats.gc.gc_last 1449332313639172936 1449332314
gostats.gc.gc_num 24906 1449332314
gostats.gc.gc_per_second 0.000000 1449332314
gostats.gc.gc_pause_per_second 0.000000 1449332314
mackerel-plugin-gostatsを作成
golang-stats-api-handlerでメトリクスを取得
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
発生原因
原因がわかってません。
情報があれば、教えてください。
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
とりあずした事
• blue-green モデルだったので、手動で定期的
にローリングアップデート。
• この運用はマジ無理
• というか休みの日とか辛い
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
とりあずした事
定期的にgraceful restartで解決?
CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
まとめ
• いまの所安定して運用できてます。
• gcまわりで問題でもおきてなさそう。
• 障害は突然やってくるのではメトリクスを必ず見ておく必要が
ある。
• バージョンアップで解決しそうな問題もあるのでバージョンアッ
プはやりたい。
CONFIDENTIAL
Thank you :)
Thank you :)

More Related Content

What's hot

徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011Hiroshi Tokumaru
 
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
Yosuke HASEGAWA
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
kimulla
 
CleanArchitecture with AssemblyDefinition in unity
CleanArchitecture with AssemblyDefinition in unityCleanArchitecture with AssemblyDefinition in unity
CleanArchitecture with AssemblyDefinition in unity
NakanoYosuke1
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
Hiroshi Tokumaru
 
Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)
Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)
Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)
akira6592
 
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
akira6592
 
自社クラウドサービスをAnsibleで作った話
自社クラウドサービスをAnsibleで作った話自社クラウドサービスをAnsibleで作った話
自社クラウドサービスをAnsibleで作った話
Watanabe Shunji
 
Spring social の基礎
Spring social の基礎Spring social の基礎
Spring social の基礎
Takuya Iwatsuka
 
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
akira6592
 
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)Hiroshi Tokumaru
 
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
akira6592
 
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
Yasuo Ohgaki
 
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ
 
Ansible night
Ansible nightAnsible night
Ansible night
kotasaegusa
 
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
 Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編) Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
Hiroshi Tokumaru
 
Ansible 2.10 と Collection
Ansible 2.10 と CollectionAnsible 2.10 と Collection
Ansible 2.10 と Collection
akira6592
 
Spring bootでweb 基本編
Spring bootでweb 基本編Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
 
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014Hiroshi Tokumaru
 

What's hot (20)

徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
 
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
 
CleanArchitecture with AssemblyDefinition in unity
CleanArchitecture with AssemblyDefinition in unityCleanArchitecture with AssemblyDefinition in unity
CleanArchitecture with AssemblyDefinition in unity
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
 
Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)
Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)
Ansible とネットワーク自動化の概要(SmartCS と Ansible の連携による自動化の可能性を体験!)
 
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
 
自社クラウドサービスをAnsibleで作った話
自社クラウドサービスをAnsibleで作った話自社クラウドサービスをAnsibleで作った話
自社クラウドサービスをAnsibleで作った話
 
Spring social の基礎
Spring social の基礎Spring social の基礎
Spring social の基礎
 
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
 
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
 
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
 
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
 
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
 
Ansible night
Ansible nightAnsible night
Ansible night
 
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
 Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編) Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
 
Ansible 2.10 と Collection
Ansible 2.10 と CollectionAnsible 2.10 と Collection
Ansible 2.10 と Collection
 
Spring bootでweb 基本編
Spring bootでweb 基本編Spring bootでweb 基本編
Spring bootでweb 基本編
 
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
 

Similar to Go conference 2015_winter

Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Yui Ashikaga
 
「eureka x mackerel」Mackerel meetup#6
「eureka x mackerel」Mackerel meetup#6「eureka x mackerel」Mackerel meetup#6
「eureka x mackerel」Mackerel meetup#6
Kento Yamashita
 
OpenStack環境の継続的インテグレーション
OpenStack環境の継続的インテグレーションOpenStack環境の継続的インテグレーション
OpenStack環境の継続的インテグレーション
エクイニクス・ジャパン
 
会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
Takuma Morikawa
 
Ncstudy#03 ニフティクラウドapiを利用して、何かつくってみよう slide
Ncstudy#03 ニフティクラウドapiを利用して、何かつくってみよう slideNcstudy#03 ニフティクラウドapiを利用して、何かつくってみよう slide
Ncstudy#03 ニフティクラウドapiを利用して、何かつくってみよう slideYoshifumi Hoda
 
QAエンジニアを通じて 弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
QAエンジニアを通じて 弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
gree_tech
 
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
chocolamint
 

Similar to Go conference 2015_winter (7)

Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
 
「eureka x mackerel」Mackerel meetup#6
「eureka x mackerel」Mackerel meetup#6「eureka x mackerel」Mackerel meetup#6
「eureka x mackerel」Mackerel meetup#6
 
OpenStack環境の継続的インテグレーション
OpenStack環境の継続的インテグレーションOpenStack環境の継続的インテグレーション
OpenStack環境の継続的インテグレーション
 
会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
 
Ncstudy#03 ニフティクラウドapiを利用して、何かつくってみよう slide
Ncstudy#03 ニフティクラウドapiを利用して、何かつくってみよう slideNcstudy#03 ニフティクラウドapiを利用して、何かつくってみよう slide
Ncstudy#03 ニフティクラウドapiを利用して、何かつくってみよう slide
 
QAエンジニアを通じて 弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
QAエンジニアを通じて 弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
 
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
 

Recently uploaded

ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
Shinichi Hirauchi
 
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
Takuya Minagawa
 
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
Osaka University
 
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
Seiya Shimabukuro
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
iPride Co., Ltd.
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDDなぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
ssuserfcafd1
 

Recently uploaded (14)

ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
 
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
 
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
 
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDDなぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
 

Go conference 2015_winter

  • 1. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. アラートはいつも突然に。 Go Conference 2015 Winter
  • 2. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. • Kenji Matsuo (@_yokoninaritai) • eureka, Inc. • インフラチームのマネージャー兼、 情シス的な仕事してます。 • 猫好きです。 自己紹介
  • 5. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. 目次 • 突然アプリケーションが刺さる • databaseの接続が残り続ける • goルーチンが増え続ける
  • 6. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. 突然アプリケーションが 刺さる。
  • 7. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. Gatlingで負荷テスト中にしてたら、
  • 8. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. 突然 504が大量発生!
  • 9. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
  • 10. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. TCP localhost:9000->localhost:26732 (CLOSE-WAIT) TCP localhost:9000->localhost:27743 (CLOSE-WAIT) TCP localhost:9000->localhost:27172 (CLOSE-WAIT) TCP localhost:9000->localhost:26834 (CLOSE-WAIT) TCP localhost:9000->localhost:27014 (CLOSE-WAIT) TCP localhost:9000->localhost:27745 (CLOSE-WAIT) TCP localhost:9000->localhost:27747 (CLOSE-WAIT) TCP localhost:9000->localhost:27749 (CLOSE-WAIT) TCP localhost:9000->localhost:27752 (CLOSE-WAIT) TCP localhost:9000->localhost:27756 (CLOSE-WAIT) TCP localhost:9000->localhost:27758 (CLOSE-WAIT) 発生原因
  • 11. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. TCP localhost:9000->localhost:26732 (CLOSE-WAIT) TCP localhost:9000->localhost:27743 (CLOSE-WAIT) TCP localhost:9000->localhost:27172 (CLOSE-WAIT) TCP localhost:9000->localhost:26834 (CLOSE-WAIT) TCP localhost:9000->localhost:27014 (CLOSE-WAIT) TCP localhost:9000->localhost:27745 (CLOSE-WAIT) TCP localhost:9000->localhost:27747 (CLOSE-WAIT) TCP localhost:9000->localhost:27749 (CLOSE-WAIT) TCP localhost:9000->localhost:27752 (CLOSE-WAIT) TCP localhost:9000->localhost:27756 (CLOSE-WAIT) TCP localhost:9000->localhost:27758 (CLOSE-WAIT) 増え続けるCLOSE_WAIT • 大量のリクエストによってCLOSE_WAITが発生する事で、TCP リソースが枯渇する。 • CPUリソース等は余っていても、TCPのmissing packetを待っ ている間、TCPリソースが離せなくなるので、実質リソース不 足になってしまう。 • TCPリソースが枯渇すると resource unavailableが発生する ので、それがstraceに出ていた。
  • 12. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. • sysctl で tcp まわりの設定変更 • nginx で upstream の keepalive 設定 tcp_keepalive_time tcp_keepalive_intvl tcp_keepalive_probes tcp_tw_reuse upstream backend { server 127.0.0.1:9000; keepalive 16; } location / {   proxy_http_version 1.1; proxy_set_header Connection "; proxy_pass http://backend; } 対策
  • 13. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. databaseの接続が 残りつ続ける。
  • 14. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. connection count 突然 too many connectionsが発生
  • 15. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. 自前で実装したSQLのパッケージで、 コネクション をcloseしても、オブジェ クトにNULLを渡してもコネクション が残り続けた。 発生原因
  • 16. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. •pt-killを導入 •go-sql-driver/mysqlに戻した。 # /usr/bin/pt-kill --interval 1 --run-time 1 --match-user read_only --match-command Sleep --idle-time 300 --print --rds --victims all --kill sleep のみ 300 秒以上かかったクエリをkillする設定 対策
  • 17. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. goルーチンが増え続ける。
  • 18. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved.
  • 19. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. gostats.cpu_num.gomaxprocs 4 1449332314 gostats.goroutine_num.goroutine_num 2537 1449332314 gostats.cgo_call_num.cgo_call_num 8133023 1449332314 gostats.memory.memory_alloc 55116600 1449332314 gostats.memory.memory_total_alloc668213200288 1449332314 gostats.memory.memory_sys 244588504 1449332314 gostats.memory.memory_lookups 7882769 1449332314 gostats.memory.memory_mallocs 12301923213 1449332314 gostats.memory.memory_frees 12301325814 1449332314 gostats.memory.memory_stack 6619136 1449332314 gostats.heap.heap_alloc 55116600 1449332314 gostats.heap.heap_sys 174587904 1449332314 gostats.heap.heap_idle 93872128 1449332314 gostats.heap.heap_inuse 80715776 1449332314 gostats.heap.heap_released 43384832 1449332314 gostats.heap.heap_objects 597399 1449332314 gostats.gc.gc_next 80257488 1449332314 gostats.gc.gc_last 1449332313639172936 1449332314 gostats.gc.gc_num 24906 1449332314 gostats.gc.gc_per_second 0.000000 1449332314 gostats.gc.gc_pause_per_second 0.000000 1449332314 mackerel-plugin-gostatsを作成 golang-stats-api-handlerでメトリクスを取得
  • 20. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. 発生原因 原因がわかってません。 情報があれば、教えてください。
  • 21. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. とりあずした事 • blue-green モデルだったので、手動で定期的 にローリングアップデート。 • この運用はマジ無理 • というか休みの日とか辛い
  • 22. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. とりあずした事 定期的にgraceful restartで解決?
  • 23. CONFIDENTIAL Copyright © 2009-2015 eureka, inc. All rights reserved. まとめ • いまの所安定して運用できてます。 • gcまわりで問題でもおきてなさそう。 • 障害は突然やってくるのではメトリクスを必ず見ておく必要が ある。 • バージョンアップで解決しそうな問題もあるのでバージョンアッ プはやりたい。