SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
その ionice、ほんとに効いてますか?
Report
Narimichi Takamura
Follow
株式会社Topotal
Sep. 4, 2014
•
0 likes
•
90,447 views
1
of
24
その ionice、ほんとに効いてますか?
Sep. 4, 2014
•
0 likes
•
90,447 views
Download Now
Download to read offline
Report
Technology
ionice に関するスライド。続編 → http://www.slideshare.net/narimichitakamura/ionice2
Narimichi Takamura
Follow
株式会社Topotal
Recommended
【続編】その ionice、ほんとに効いてますか?
Narimichi Takamura
76.8K views
•
26 slides
大規模DCのネットワークデザイン
Masayuki Kobayashi
17.5K views
•
32 slides
Linux女子部 systemd徹底入門
Etsuji Nakai
137.3K views
•
50 slides
分散システムについて語らせてくれ
Kumazaki Hiroki
119.1K views
•
45 slides
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Yahoo!デベロッパーネットワーク
5.3K views
•
48 slides
Airflowで真面目にjob管理
msssgur
785 views
•
28 slides
More Related Content
What's hot
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
15K views
•
20 slides
フロー技術によるネットワーク管理
Motonori Shindo
10.6K views
•
84 slides
コンテナネットワーキング(CNI)最前線
Motonori Shindo
31.3K views
•
34 slides
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
3.5K views
•
31 slides
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
15.4K views
•
78 slides
目grep入門 +解説
murachue
88.9K views
•
83 slides
What's hot
(20)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
•
15K views
フロー技術によるネットワーク管理
Motonori Shindo
•
10.6K views
コンテナネットワーキング(CNI)最前線
Motonori Shindo
•
31.3K views
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
•
3.5K views
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
•
15.4K views
目grep入門 +解説
murachue
•
88.9K views
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
•
21.4K views
ロードバランスへの長い道
Jun Kato
•
13.5K views
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
•
6.5K views
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
•
1.5K views
できる!並列・並行プログラミング
Preferred Networks
•
26.5K views
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
•
13.2K views
Dockerからcontainerdへの移行
Kohei Tokunaga
•
16.3K views
DockerコンテナでGitを使う
Kazuhiro Suga
•
18.3K views
KubernetesでRedisを使うときの選択肢
Naoyuki Yamada
•
4.8K views
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Atsushi Tanaka
•
4.8K views
Dockerからcontainerdへの移行
Akihiro Suda
•
6.9K views
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
•
40.1K views
10分でわかる Cilium と XDP / BPF
Shuji Yamada
•
11.6K views
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
•
6.7K views
Similar to その ionice、ほんとに効いてますか?
Build an iOS app with ConcourseCI
健仁 天沼
2.5K views
•
23 slides
関数型言語ElixirのIoTシステムへの導入に向けた基礎評価
Hideki Takase
817 views
•
40 slides
データフロー自動化ツールの考え方
fumoto kazuhiro
1.4K views
•
17 slides
20apr2012 kernelvm7-main
Shotaro Uchida
2.4K views
•
48 slides
Checkpointing Algorithms on In-memory DBMS
Sho Nakazono
14 views
•
23 slides
What is java_se_7
TakumiIINO
2.2K views
•
70 slides
Similar to その ionice、ほんとに効いてますか?
(19)
Build an iOS app with ConcourseCI
健仁 天沼
•
2.5K views
関数型言語ElixirのIoTシステムへの導入に向けた基礎評価
Hideki Takase
•
817 views
データフロー自動化ツールの考え方
fumoto kazuhiro
•
1.4K views
20apr2012 kernelvm7-main
Shotaro Uchida
•
2.4K views
Checkpointing Algorithms on In-memory DBMS
Sho Nakazono
•
14 views
What is java_se_7
TakumiIINO
•
2.2K views
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
•
3.6K views
システムパフォーマンス勉強会#4
shingo suzuki
•
784 views
システムパフォーマンス勉強会#4
shingo suzuki
•
755 views
落ちないアプリ開発の仕組み
Kazunari Ebihara
•
1.8K views
Trac Plugin Developement with Jenkins
Takahisa Wada
•
3.2K views
ログ先行書き込みを用いたストレージ差分取得の一手法
Takashi Hoshino
•
3.2K views
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~
Ryuta Otaki
•
5.3K views
バージョン管理勉強会
Hiroaki Murayama
•
1.7K views
ゼロから始める自作 CPU 入門
Hirotaka Kawata
•
42K views
FOLIOのコードを動かしてみた
Futoshi Tanuma
•
460 views
WalBの紹介
Takashi Hoshino
•
4.7K views
Java EE パフォーマンスTips #glassfish_jp
Norito Agetsuma
•
8.1K views
kagami_comput2015_14
swkagami
•
840 views
More from Narimichi Takamura
Nginx バージョンアップ動向(2015/07〜2015/12)
Narimichi Takamura
1.4K views
•
24 slides
Dovecot & Postfix バージョンアップ動向 201506-201511
Narimichi Takamura
1.6K views
•
23 slides
Nginx バージョンアップ動向(2015/01〜2015/06)
Narimichi Takamura
3.4K views
•
25 slides
Dovecot & Postfix バージョンアップ動向 201401-201505
Narimichi Takamura
1.7K views
•
32 slides
ぼくとおこめとJSON
Narimichi Takamura
4.9K views
•
45 slides
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
Narimichi Takamura
1.3K views
•
77 slides
More from Narimichi Takamura
(10)
Nginx バージョンアップ動向(2015/07〜2015/12)
Narimichi Takamura
•
1.4K views
Dovecot & Postfix バージョンアップ動向 201506-201511
Narimichi Takamura
•
1.6K views
Nginx バージョンアップ動向(2015/01〜2015/06)
Narimichi Takamura
•
3.4K views
Dovecot & Postfix バージョンアップ動向 201401-201505
Narimichi Takamura
•
1.7K views
ぼくとおこめとJSON
Narimichi Takamura
•
4.9K views
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
Narimichi Takamura
•
1.3K views
Nginx バージョンアップ動向(2014/01〜2014/12)
Narimichi Takamura
•
4.7K views
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 1 章
Narimichi Takamura
•
3.9K views
ぼくとおこめ
Narimichi Takamura
•
3.6K views
( (0) / (0)) ☆祝☆ (nari_ex) LT at Cloud Server Festa 2013 Autumn「サバフェス!」
Narimichi Takamura
•
2.6K views
Recently uploaded
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
226 views
•
38 slides
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
83 views
•
1 slide
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
93 views
•
24 slides
画像生成AIの問題点
iPride Co., Ltd.
127 views
•
9 slides
指側面を入力インタフェース化するリング型デバイス
sugiuralab
5 views
•
1 slide
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
73 views
•
18 slides
Recently uploaded
(11)
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
226 views
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
•
83 views
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
•
93 views
画像生成AIの問題点
iPride Co., Ltd.
•
127 views
指側面を入力インタフェース化するリング型デバイス
sugiuralab
•
5 views
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
•
73 views
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
•
93 views
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
•
39 views
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
•
442 views
NoSQL/SQLデュアルインターフェースを備えた IoT向けデータベースGridDB - 強化された時系列データ管理・検索機能について -
griddb
•
7 views
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
250 views
その ionice、ほんとに効いてますか?
1.
その IONICE, ほんとに効いてますか?
TAKAMURA Narimichi @nari_ex hbstyle-2014-08-14
2.
WHAT IS IONICE
? • I/O の処理優先度を指定するLinuxコマンド • nice コマンドの I/O バージョン • nice コマンドでは I/O 優先度を制御不可
3.
I/O 優先度クラス •
RT ( Real-time ) • 最高優先度 • BE ( Best-Effort ) • デフォルト優先度 • Idle • 最低優先度
4.
BE: クラス内優先度 •
BE クラスのみ、クラス内優先度がある • 優先度は 0~7 までの 8段階 • 0が最高優先度、7が最低優先度 • 優先度はクラスの枠を超えない • RT > BE (0) • IDLE < BE (7)
5.
BE: クラス内優先度 •
BE クラスのみ、クラス内優先度がある • 優先度は 0~7 までの 8段階 • 0が最高優先度、7が最低優先度 • 優先度はクラスの枠を超えない • RT < BE (0) • IDLE < BE (7)
6.
HOW TO IONICE
• RT クラスを指定: ionice -c1 • BE クラスを指定: ionice -c2 -n <0~7> • IDLE クラスを指定: ionice -c3
7.
余談: NICE コマンド
• クラスはない • 優先度 ( nice値 ) は -20~19 • -20 が最高優先度、19が最低優先度
8.
負荷を最小限に抑えたい!
9.
ionice, nice を駆使して…
10.
# ionice -c3
nice -n19
11.
これで完璧だ!!!
12.
–Johnny Appleseed
13.
ちょっとまって
14.
その IONICE, ほんとに効いてますか?
15.
–Johnny Appleseed
16.
IONICE が効く条件 •
I/O スケジューラ • Readなの?Writeなの?フラグは? • ファイル作成フラグ • キャッシュの有無
17.
I/O Scheduler…
18.
ユーザ空間 VFS “ここに引用を入力してください。”
–Johnny Appleseed カーネル空間 システムコール 物理 デバイス ファイルシステム ディスクキャッシュ 汎用ブロック層 物理 デバイス プロセス I/O スケジューラ層 デバイス ドライバ デバイス ドライバ
19.
条件その1: I/O SCHEDULER(1)
• CFQ スケジューラ以外は無理 • Linux 標準のスケジューラは CFQ • Amazon Linux は Noop なので注意 • Unbreakable Linux は Deadline なので注意
20.
条件その1: I/O SCHEDULER(2)
• デバイスひとつにI/Oスケジューラひとつ • デバイスをまたぐ処理の場合に注意 • 処理に関わるすべてのデバイスを確認せよ • # cat /sys/block/<DEV_NAME>/queue/ scheduler
21.
条件その2: I/O処理の内容(1) •
Write() は基本的に効かない • O_DIRECT, O_SYNC をフラグ立ててればOK • -o sync でマウントされたファイルシステムならOK
22.
条件その2: I/O処理の内容(2) •
Read() もすべてに効くわけではない • ディスクキャッシュがあるとダメ • ディスクアクセスないから当然
23.
まとめ • ionice
は以下の 2条件を満たした時にちゃんと動く • I/O Scheduler が CFQ • 特定のI/O処理 • キャッシュされていないファイルへのRead • 特殊フラグの立った Write
24.
さいごに • man
ioprio_set を読もう • ファイル作成フラグの細かいことはまた今度 • O_SYNC, O_DSYNC, O_FSYNC… • ionice -p <PID> を使うと、起動中のプロセスのI/O優 先度変更できるよ