質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

0回答

1199閲覧

seleniumでのCPUが上昇してしまう問題

m8354825717

総合スコア20

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2020/09/12 22:49

編集2020/09/12 22:56

selenium を毎分プログラムを実行する際にCPUが上昇してしまいます。

cgroup でのCPUの上限を決める方法を検討していますが、他に方法はあるのでしょうか?

chromeが複数立ち上がってしまっているのもなぜかわかっていません。
下記の実行履歴を見るとcatなどで複数表示されている状況です。

ps auxf

root 4834 0.0 0.1 150932 2816 ? S 07:51 0:00 \_ CROND root 4837 0.0 0.1 113148 2720 ? Ss 07:51 0:00 | \_ /bin/sh -c /home/ec2-user/cron/sample.sh root 4840 0.0 0.1 113148 2888 ? S 07:51 0:00 | \_ /bin/sh /home/ec2-user/cron/sample.sh root 4865 0.5 1.3 225552 28052 ? S 07:51 0:00 | \_ /usr/bin/.pyenv/versions/3.7.4/bin/python sample.py root 4969 0.7 0.6 199204 12744 ? Sl 07:51 0:00 | \_ /usr/local/bin/chromedriver --port=xxxxx root 4975 25.3 6.9 896504 141604 ? Sl 07:51 0:15 | \_ /opt/google/chrome/google-chrome --allow-running-insecure-content --disable-application-cache --disable-backg root 4979 0.0 0.0 107988 228 ? S 07:51 0:00 | \_ cat root 4980 0.0 0.0 107988 216 ? S 07:51 0:00 | \_ cat root 4982 0.0 2.4 527780 49656 ? S 07:51 0:00 | \_ /opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --no-sandbox --enable-logging --headless --lo root 4983 0.0 2.4 527780 49784 ? S 07:51 0:00 | \_ /opt/google/chrome/chrome --type=zygote --no-sandbox --enable-logging --headless --log-level=0 --headless root 5017 62.0 9.8 4956300 201096 ? Rl 07:51 0:37 | \_ /opt/google/chrome/chrome --type=renderer --no-sandbox --allow-pre-commit-input --enable-automation -

Log

4187 root 20 0 4833m 185m 121m R 83.3 11.7 0:36.43 chrome 4145 root 20 0 818m 136m 100m S 13.7 6.8 0:19.76 chrome 4152 root 20 0 515m 48m 38m S 0.0 2.4 0:00.08 chrome 4153 root 20 0 515m 48m 38m S 0.0 2.4 0:00.08 chrome

ソースコード

options = webdriver.ChromeOptions() options.add_argument("--profile-directory") options.add_argument("--headless") options.add_argument("--disable-gpu") options.add_argument("--window-size=1280x1696") options.add_argument("--disable-application-cache") options.add_argument("--disable-infobars") options.add_argument("--no-sandbox") options.add_argument("--hide-scrollbars") options.add_argument("--enable-logging") options.add_argument("--log-level=0") options.add_argument("--single-process") options.add_argument("--ignore-certificate-errors") options.add_argument("--homedir=/tmp") options.add_argument('--allow-running-insecure-content') options.add_argument('--disable-web-security') options.add_argument('--disable-desktop-notifications') options.add_argument("--disable-extensions") options.add_argument('--user-agent=hogehoge') options.add_argument('--lang=ja') driver = webdriver.Chrome( "/usr/local/bin/chromedriver", chrome_options=options) driver.get('https://www.google.com/') driver.close() driver.quit()

ご存知の方ご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shirai

2020/09/13 13:28

CPUは上がっていくと言うことですが、メモリも食いつぶされていると言うことはないでしょうか。 もうしそうであればdriver.close() driver.quit()とありますが正常にプログラムが終了していないのではないかと疑いがあります。 quitの次の行に打ったprint文がログに出てくるか確かめる、 exit()を念のため最終行に加える、 などではいかがでしょうか。
kuma_kuma_

2020/09/19 19:07

Chromeは1画面でもプロセスが複数立ち上がります(裏でサービス関連を動かすため) 私の環境で見たら1画面で10プロセスでした。 ねんの為、 options.add_experimental_option('detach', false) を追加 https://chromedriver.chromium.org/capabilities#TOC-chromeOptions-object closeとquitの間隔をあける driver.close() time.sleep(1) driver.quit() driver変数の初期化 されているでしょうがchromeの最新化 でしょうか?
kuma_kuma_

2020/09/19 19:54

最終手段 psutil – Pythonでプロセスとシステムを監視するためのクロスプラットフォームのlib https://githubja.com/giampaolo/psutil これでchromdriver.exeのプロセスをさがして強制終了させる。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問