Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Seleniumでイキってたらサーバを絞め落としかけてた話
Search
kenFuji
June 08, 2022
Programming
0
710
Seleniumでイキってたらサーバを絞め落としかけてた話
2022/06/08に開催された「自動化大好きエンジニアLT会 - vol.7」にて発表したときの資料です。
https://rakus.connpass.com/event/245663/
kenFuji
June 08, 2022
Tweet
Share
Other Decks in Programming
See All in Programming
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
150
SwiftUIで本格音ゲー実装してみた
hypebeans
0
550
これならできる!個人開発のすゝめ
tinykitten
PRO
0
140
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
420
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
570
CSC307 Lecture 01
javiergs
PRO
0
630
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.1k
Navigating Dependency Injection with Metro
l2hyunwoo
1
200
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
470
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
130
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
200
Developing static sites with Ruby
okuramasafumi
0
340
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
14k
The Invisible Side of Design
smashingmag
302
51k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
170
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.2k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
65
35k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
300
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
220
How to Think Like a Performance Engineer
csswizardry
28
2.4k
First, design no harm
axbom
PRO
1
1.1k
ラッコキーワード サービス紹介資料
rakko
0
1.9M
Transcript
Seleniumでイキってたら サーバを絞め落としかけてた話 2022 06/08 自動化LT#7
自己紹介 • 名前 ◦ Ken Fujita • 職業 ◦ ネットワークエンジニア(今年で新卒3年目)
• やってること ◦ NW保守、ツール作成、営業・窓口サポートなど ◦ CRE? • 最近のマイブーム ◦ PS5 ◦ 映画 ◦ そば
なにをしたか • 手作業が多かった業務を自動化したよ • ブラウザ操作が主だったのでSeleniumで自動化できたよ • いけたと思ったらサーバのリソースを食いつぶしていたよ
どんな業務か • メンテ情報をカレンダーアプリに登録する作業
Seleniumで自動化した • メールコピー~登録までを自動化 • メール送信できるWebフォームも作成 • フォーマットが統一されより自動化しやすくなった
フロー図 自動化ツール (Selenium) AP Server 窓口 関係者 chrome (webdriver)
自動化完全に理解した
自動化完全に理解した?
ある日 • 上司からチャットが飛ぶ Pythonスクリプト動かしたら “Error: Too many open files” って出てきたんだけど心当たりある?
ある日 • 上司からチャットが飛ぶ Pythonスクリプト動かしたら “Error: Too many open files” って出てきたんだけど心当たりある?
→ 嫌な予感がしたので調査した
調査の結果 • エラー文でググったところ、ファイルディスクリプタ上限に引っかかった? ◦ https://e-words.jp/w/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%87%E3%82% A3%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%82%BF.html • 設定変更するものの状況変わらず ◦ “Too
many open files”は出続ける ◦ スクリプト自体は正常に動作する • 何だか知らんがとにかくよし! /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 # ulimit -n https://akishin.hatenablog.jp/entry/20130213/13 60711554
後日 • 上司からチャットが飛ぶ “Error: Too many open files” ↑の原因わかりました
後日 • 上司からチャットが飛ぶ “Error: Too many open files” ↑の原因わかりました chromeのプロセスがサーバ内に数百個残
り続けていたのが原因でした
None
原因 • コード例
原因 • コード例 • 例外処理がなく エラー発生時にchrome プロセスが残り続ける • デバッグしながら進めた ので数が膨れ上がった
対策 • エラーハンドリングを行う • with構文でも良いらしい ◦ https://qiita.com/yuki-k/items/ aeb4ec8f10c391ca1037 #with%E6%A7%8B%E6%96 %87%E3%82%92%E4%BD
%BF%E3%81%86
教訓 • エラー文や行動から起きていることを想像する ◦ Too many open files ◦ 自動化スクリプトから
chromeを立ちあげた → プロセス周りも調べてみる( psコマンド等) • 何か起きた時のことを想定して設計する ◦ フェールセーフ ◦ 今回だと異常終了時でもプロセスを閉じるなど
まとめ Let’s try 自動化 !
おわり