Submit Search
Upload
【続編】その ionice、ほんとに効いてますか?
•
16 likes
•
77,586 views
Narimichi Takamura
Follow
以下のスライドの続編です。 http://www.slideshare.net/narimichitakamura/ionice
Read less
Read more
Technology
Report
Share
Report
Share
1 of 26
Download now
Download to read offline
Recommended
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
Narimichi Takamura
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
CODE BLUE
バイナリアンを目指して For a binaryen
バイナリアンを目指して For a binaryen
Eyes, JAPAN
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
shigeki_ohtsu
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
wata2ki
Recommended
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
Narimichi Takamura
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
CODE BLUE
バイナリアンを目指して For a binaryen
バイナリアンを目指して For a binaryen
Eyes, JAPAN
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
shigeki_ohtsu
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
wata2ki
UEFI時代のブートローダ
UEFI時代のブートローダ
Takuya ASADA
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
実践イカパケット解析α
実践イカパケット解析α
Yuki Mizuno
Docker Tokyo
Docker Tokyo
cyberblack28 Ichikawa
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
Ryuichi Sakamoto
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
Yasunori Goto
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Kouhei Sutou
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
shimadah
Linux KVM のコードを追いかけてみよう
Linux KVM のコードを追いかけてみよう
Tsuyoshi OZAWA
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
Metaspace
Metaspace
Yasumasa Suenaga
pixivのインフラを支える技術
pixivのインフラを支える技術
Ryuta Kamizono
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
MITSUNARI Shigeo
Aio
Aio
Masaaki HIROSE
OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方
Mibu Ryota
More Related Content
What's hot
UEFI時代のブートローダ
UEFI時代のブートローダ
Takuya ASADA
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
実践イカパケット解析α
実践イカパケット解析α
Yuki Mizuno
Docker Tokyo
Docker Tokyo
cyberblack28 Ichikawa
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
Ryuichi Sakamoto
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
Yasunori Goto
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Kouhei Sutou
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
shimadah
Linux KVM のコードを追いかけてみよう
Linux KVM のコードを追いかけてみよう
Tsuyoshi OZAWA
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
Metaspace
Metaspace
Yasumasa Suenaga
pixivのインフラを支える技術
pixivのインフラを支える技術
Ryuta Kamizono
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
MITSUNARI Shigeo
What's hot
(20)
UEFI時代のブートローダ
UEFI時代のブートローダ
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
実践イカパケット解析α
実践イカパケット解析α
Docker Tokyo
Docker Tokyo
Docker Compose 徹底解説
Docker Compose 徹底解説
Glibc malloc internal
Glibc malloc internal
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
トランザクションの設計と進化
トランザクションの設計と進化
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
Linux KVM のコードを追いかけてみよう
Linux KVM のコードを追いかけてみよう
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Metaspace
Metaspace
pixivのインフラを支える技術
pixivのインフラを支える技術
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
Similar to 【続編】その ionice、ほんとに効いてますか?
Aio
Aio
Masaaki HIROSE
OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方
Mibu Ryota
UEFI向け自作OSの紹介
UEFI向け自作OSの紹介
Yuma Ohgami
runC概要と使い方
runC概要と使い方
Yuji Oshima
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
オラクルエンジニア通信
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
Yasuhiro Matsuo
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
Yoshimasa Tanabe
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
Kohei Tokunaga
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Hirotaka Kawata
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
Takahiro YAMADA
2016年2月4日 空間OSの設計コンセプトと先端IT
2016年2月4日 空間OSの設計コンセプトと先端IT
aitc_jp
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
Masataka Kondo
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
bitbank, Inc. Tokyo, Japan
LPICレベル1技術解説セミナー(2012/11/11)
LPICレベル1技術解説セミナー(2012/11/11)
Kazuko Itoda
Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用
Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用
Rescale Japan株式会社
第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料
Naoki Shibata
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
Hajime Tazaki
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
Brocade
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
オラクルエンジニア通信
Dbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publish
Yohei Azekatsu
Similar to 【続編】その ionice、ほんとに効いてますか?
(20)
Aio
Aio
OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方
UEFI向け自作OSの紹介
UEFI向け自作OSの紹介
runC概要と使い方
runC概要と使い方
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
2016年2月4日 空間OSの設計コンセプトと先端IT
2016年2月4日 空間OSの設計コンセプトと先端IT
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
LPICレベル1技術解説セミナー(2012/11/11)
LPICレベル1技術解説セミナー(2012/11/11)
Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用
Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用
第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
Dbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publish
More from Narimichi Takamura
Nginx バージョンアップ動向(2015/07〜2015/12)
Nginx バージョンアップ動向(2015/07〜2015/12)
Narimichi Takamura
Dovecot & Postfix バージョンアップ動向 201506-201511
Dovecot & Postfix バージョンアップ動向 201506-201511
Narimichi Takamura
Nginx バージョンアップ動向(2015/01〜2015/06)
Nginx バージョンアップ動向(2015/01〜2015/06)
Narimichi Takamura
Dovecot & Postfix バージョンアップ動向 201401-201505
Dovecot & Postfix バージョンアップ動向 201401-201505
Narimichi Takamura
ぼくとおこめとJSON
ぼくとおこめとJSON
Narimichi Takamura
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
Narimichi Takamura
Nginx バージョンアップ動向(2014/01〜2014/12)
Nginx バージョンアップ動向(2014/01〜2014/12)
Narimichi Takamura
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 1 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 1 章
Narimichi Takamura
ぼくとおこめ
ぼくとおこめ
Narimichi Takamura
( (0) / (0)) ☆祝☆ (nari_ex) LT at Cloud Server Festa 2013 Autumn「サバフェス!」
( (0) / (0)) ☆祝☆ (nari_ex) LT at Cloud Server Festa 2013 Autumn「サバフェス!」
Narimichi Takamura
More from Narimichi Takamura
(10)
Nginx バージョンアップ動向(2015/07〜2015/12)
Nginx バージョンアップ動向(2015/07〜2015/12)
Dovecot & Postfix バージョンアップ動向 201506-201511
Dovecot & Postfix バージョンアップ動向 201506-201511
Nginx バージョンアップ動向(2015/01〜2015/06)
Nginx バージョンアップ動向(2015/01〜2015/06)
Dovecot & Postfix バージョンアップ動向 201401-201505
Dovecot & Postfix バージョンアップ動向 201401-201505
ぼくとおこめとJSON
ぼくとおこめとJSON
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
Nginx バージョンアップ動向(2014/01〜2014/12)
Nginx バージョンアップ動向(2014/01〜2014/12)
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 1 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 1 章
ぼくとおこめ
ぼくとおこめ
( (0) / (0)) ☆祝☆ (nari_ex) LT at Cloud Server Festa 2013 Autumn「サバフェス!」
( (0) / (0)) ☆祝☆ (nari_ex) LT at Cloud Server Festa 2013 Autumn「サバフェス!」
Recently uploaded
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Recently uploaded
(9)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
【続編】その ionice、ほんとに効いてますか?
1.
【続編】その IONICE 、
ほんとに効いてますか? 株式会社ハートビーツ @nari_ex 高村成道
2.
おさらい ionice は以下の2条件を満たした時にちゃんと動く
I/O Scheduler が CFQ 特定のI/O処理 キャッシュされていないファイルへのRead 特殊フラグの立った Write
3.
ん、なんで(・へ・)?
4.
CFQ じゃないと効かない理由
5.
VFS カーネル空間 ユーザ空間
システムコール 物理 デバイス ファイルシステム ディスクキャッシュ 汎用ブロック層 I/O スケジューラ 物理 デバイス プロセス I/O スケジューラ デバイス ドライバ デバイス ドライバ
6.
I/O スケジューラ概要
7.
I/O
8.
I/O スケジューラの サブキューに注目
9.
結論: CFQ 以外、優先度を考慮して
実装されてない
10.
代表的なI/Oスケジューラ • NOOP
• DEADLINE • CFQ(Completely Fair Queuing)
11.
NOOP I/O スケジューラ
• 要求をディスパッチキューに突っ込むだけ • No Operation
12.
NOOP I/O スケジューラ
全部入りのFIFOキューがあるだけ
13.
I/O
14.
DEADLINE I/O スケジューラ
• ReadとWriteでキューが別 • Read 優先 • 期限(deadline)付きキューが特徴 • 期限が切れた要求は最優先で処理する
15.
DEADLINE I/O スケジューラ
READ と WRITE のキューがあるだけ
16.
I/O
17.
CFQ I/O スケジューラ
• プロセスごとにサブキューを用意 • 優先度を考慮してキューごとの処理時間を決定 • 1つのサブキューをアクティブキューとして、その キュー内の要求を処理時間の範囲で処理する • 処理時間が終わるとアクティブキューが切り替わる
18.
CFQ I/O スケジューラ
プロセスごとにキューがある I/O
19.
…
20.
CFQ I/O スケジューラ
I/O
21.
アクティブになったキューにある 要求が処理される
… 低優先度プロセスのサブキューは アクティブになかなかならない なってもすぐにスタンバイになる
22.
特定のI/Oじゃないと効かない理由
23.
ディスクキャッシュの効いたREAD プロセス空間 ディスクキャッシュ
物理デバイス ディスクキャッシュの データを返す
24.
ディスクキャッシュのないREAD プロセス空間 ディスクキャッシュ
物理デバイス
25.
ディスクキャッシュのないREAD プロセス空間 ディスクキャッシュ
物理デバイス ディスクキャッシュの ディスクキャッシュ作成 データを返す
26.
普通のWRITE(遅延 WRITE) プロセス空間
ディスクキャッシュ 物理デバイス ディスクキャッシュに 後で書き込み コピーをして終了
27.
普通のWRITE(遅延 WRITE) プロセス空間
ディスクキャッシュ 物理デバイス ディスクキャッシュに 後で書き込み コピーをして終了 誰がやるの?
28.
定期的にLINUX カーネルが書き込んでます。 ※だから
IONICE が効かない
29.
定期的な同期処理
30.
特殊なフラグの立ったI/O プロセス空間 ディスクキャッシュ
物理デバイス キャッシュを経由せず 直接デバイスに読み書きする
31.
質問コーナー
Download now