ablog

不器用で落着きのない技術者のメモ

ファイルシステム の検索結果:

Parquet ファイルに Presto でクエリ時の Column Projection について調べた

…スAPI HDFSのファイルシステムからランダムアクセスするコード Sさんに教えてもらったやつ 環境 emr 5.18.0-ami-roller-6 hvm ebs (ami-08366f64fbeb6134f) マスターノード: m4.xlarge コアノード: r5d.xlarge 参考 Parquet ファイルの定義 $ aws s3 cp s3://amazon-reviews-pds/parquet/product_category=Apparel/part-000…

Presto で Parquet にクエリするとファイル中の必要な Column chunk のみを読んでいるか

… で xfs などのファイルシステムのファイルを読んでということになってるのではないかと推察。— yohei.az (@yoheia) 2018年10月9日 1)flame graphでhdfsのioシステムコールを発行元コールスタックを特定2)straceでioを発行したファイルとioサイズ、シーケンシャルorランダムを確認3)blktrace+bttでio範囲(bno)を確認4)AthenaとPrestoのscanサイズを比較5)Prestoのスキャンサイズとディスクio…

HDFS キャッシング

…DFS のブロックはファイルシステムに保存されるため、Linux カーネルのページキャッシュを自然に使っていたが、ユーザー空間から制御できないため、HDFSキャッシング(Hadoop 2.3.0 以降)という機能がある。 HDFS上のデータの読み書きの際には、ディスクから読み出されたデータは、Linuxのカーネル内のページキャッシュ(原文ではBuffer cacheとなってます)にキャッシュされます。(これにより毎回ディスクアクセスを避けることが期待できます) HDFSが高速…

HDFS の下の OS レイヤーを覗いてみる

…9% /mnt ★ ファイルシステムは XFS。 [root@ip-***-**-*-133 hdfs]# mount proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,relatime) devtmpfs on /dev type devtmpfs (rw,relatime,size=16460148k,nr_inodes=4115037,mode=755) devpts on /dev/p…

Parquet

AWS

…tname apicall_count GetObject 1153 HeadObject 1117 HeadBucket 500 ListObjects 43 PutObject 2 検証パターン Athena/PySpark S3/HDFS/ファイルシステム クエリ 参考 https://registry.opendata.aws/amazon-reviews/ https://s3.amazonaws.com/amazon-reviews-pds/readme.html

db tech showcase 2018 Day 3

…によるI/O削減」はファイルシステムからブロック単位で読むという意味だろうか?同じファイルに複数列の値が入っているが。 主にfastparquetとPyArrowの2つのライブラリがある。Hadoop エコシステムの親和性では PyArrow のほうが優れているかも。 parquetのpredicate pushdownの話。やはりこれがparquetの価値だよね #dbts2018— Sho Shimauchi (@shiumachi) 2018年9月21日 parquet…

Spark の RDD、DataFrame、DAG と Glue の DynamicFrame などについて

AWS

…在です。例えば、分散ファイルシステムである HDFS や、リソースマネージャである YARN などは、Spark からでもそのまま利用できます。Hadoop を利用しない構成も可能であり、分散ストレージとして Amazon S3 を利用したり、あるいは分散データベースである Cassandra からデータを読み込んだりするようなことも可能です。 Core は Scalaで書かれている https://github.com/apache/spark https://github…

コンテナ について

…険。そこで、本番用のファイルシステムの一部を分離(隔離)するという考えが生まれた 第1回 Dockerと「昭和54年」の深〜い関係 - ITmedia エンタープライズ chroot の応用例 chroot監獄は開発の場面だけでなく、システムファイルの破損や、操作ミスなどで誤ってファイルを削除してしまい、OSが起動不能になった場合に、インストールメディアのレスキューモードを使ってOSを復旧させるシーンにおいても使われています。 具体的には、インストールメディアで対象となるマシ…

MySQL on CentOS 6.9 に sysbench でベンチマークをかけてみる

ファイルシステムの初期化 ファイルシステムを初期化する # mkdir /nvme0n1 /e32000 # fdisk -l # mkfs.ext4 /dev/nvme0n1 # mkfs.ext4 /dev/xvdb # mount /dev/nvme0n1 /nvme01 # mount /dev/xvdb /e32000 インストール MySQL の yum リポジトリを追加する # yum -y install http://dev.mysql.com/get/my…

Oracle GoldenGate 12.1.2.0.0 を使ってみる

…ールの傾向はローカルファイルシステムと同じ(OGG から見たら VFS にあるただのファイルなので想定通り)。 [oracle@ODIGettingStarted strace]$ less strace.14020 (中略) 00:54:06.674232 open("/mnt/nfs/lt000002", O_RDWR) = -1 ENOENT (No such file or directory) ★ ↑Trail がないので、 00:54:06.674279 umas…

NFS on Linux でロックを解放する方法

…ロック対象ファイル(ファイルシステムのメジャー、マイナデバイスID、i-node番号) 7. ロック範囲バイト(flock()によるロックの場合は常に0) 8. ロック範囲終了バイト 参考 Fcntl - load the C Fcntl.h defines - metacpan.org File::FcntlLock - File locking with fcntl(2) - metacpan.org fcntl(2) - Linux manual page E.2.16…

シンプルでシステマチックな Linux 性能分析(本)

…記憶(ページング)/ファイルシステム/ブロックデバイス/キャラクタデバイス/スワップ システムコール/割込み/コンテキストスイッチ メモリ空間(ユーザー空間とカーネル空間) 理論 待ち行列理論 アムダールの法則 Timeベース 同期/非同期、直列/並列、ピンポン、固定長と可変長、排他制御 ボトルネックの見つけ方 CPU CPU使用率とランキュー メモリ 実質メモリ使用率を算出する メモリ使用率の内訳 スワップを正しく理解する ディスク 1回のIOが遅いのか、限界性能に達してい…

大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由

…k.x86_64) ファイルシステム: ext4 awk 3.1.7 cat 8.4 参考 https://uec.usp-lab.com/JOURNAL/CGI/JOURNAL.CGI?POMPA=KAIGAN_journal08 システムコールの特性を知る pipe(2)編 (1/2):知ってトクするシステムコール(8) - @IT 追記(2015/07/30): 「catはposix_fadivse(SEQUENTIAL)してるからOSの先読み量が倍に」が正しいんじゃな…

funcgraph で Linux カーネル内のボトルネックをミクロに追跡する

…ックレイヤーの中間(ファイルシステムレイヤーなど)で詰まっていると考えられます*3。 このようなケースで、1回のシステムコール発行の所要時間の内訳*4をミクロに追跡するには Brendan Gregg の funcgraph が便利です*5。 実行結果 # ./funcgraph -Htp 4511 vfs_write Tracing "vfs_write" for PID 4511... Ctrl-C to end. # tracer: function_graph # #…

prociostat.pl と visualize_prociostat.R で Linux のプロセスのボトルネックを分析する

…ムでも /proc ファイルシステムを参照してプログラムの外側からボトルネック分析が可能になります。素晴らしい! こんな感じのグラフができます。 ツール prociostat.pl プロセスのCPU使用率、I/Oバイト数、I/O待機時間*1を秒間隔でCSVに記録する Perl スクリプト*2 情報ソースは /proc//stat、/proc//io など 他のユーザーで実行しているプロセスの情報を取得する場合は root で実行する必要がある*3。 prociostat.pl…

起動しなくなった MacBook Air を修復した

Mac

…い 対処 fsckでファイルシステム修復 電源ボタンを押した後、「Command (Apple ⌘) 」と「S」キーを同時に押す fsck -fy を実行する。 # fsck -fy (中略) ** Checking Catalog File. Invalid key Length (4,11485) ** Volume check failed. /dev/rdisk0a2 (hfs) EXITED WITH SIGNAL 8 ボリュームのチェックに失敗、次の手を考える… …

ls -f で返ってくるリストは何の順か?

…った順で返されます(ファイルシステムがファイルをディレクトリへ追加した順序、またファイル削除後にできたファイル名一覧のすきまを埋める処理に依存します)。ls -f コマンドは readdir() が返した順序そのままでファイル名一覧を表示します。 おまけ getdents の man のサンプルソースを実行してみた。 getdents(2) - Linux manual page #define _GNU_SOURCE #include <dirent.h> /* Defin…

メモリに関して思ったことをメモ

…ていた 仮想メモリ、ファイルシステム、マルチタスクなどは汎用機の時代から受け継がれている技術 汎用機以前は物理を意識してプログラミングしていた、それに比べてると「汎用」機になった 仮想メモリは物理メモリが少ない時代に大きく使うために1950年代くらいに発明された ページング方式とセグメント方式 共有メモリがスワップされるのは Linux だけでない。 Solarisでは共有メモリのページテーブルは共有される ページには Anonymous と File-backed があり、…

ファイルシステムとは

OS

ファイルシステムは、コンピュータのリソースを操作するための、オペレーティングシステム (OS) が持つ機能の一つ。ファイルとは、主に補助記憶装置に格納されたデータを指すが、デバイスやプロセス、カーネル内の情報といったものもファイルとして提供するファイルシステムもある。 より正確に定義すれば、ファイルシステムは抽象データ型の集まりであり、ストレージ、階層構造、データの操作/アクセス/検索のために実装されたものである。ファイルシステムを特殊用途のデータベース管理システム (DBM…

Solaris の空きメモリの見方について

…すので、使用しているファイルシステムによって注意して読む必要があります。メモリの統計情報は "echo '::memstat' | mdb -k" でも取得する事が可能です。free の値は kstat の unix:0:vminfo:freemem をページサイズ単位から KB 単位に直した数値です。"kstat -p 'unix:0:vminfo:freemem' 1" を実行すると同じ値を取得する事が可能です。kstat コマンドの結果は累積値で出ますので差分を取って、…

Seekwatcher を使ってみる

…で書かれてるんだ。 ファイルシステムの分析には seekwatcher というツールを自ら書きました。blktrace の出力情報を分析してディスクの動きを可視化できるので、性能上の問題の特定がしやすくなりました。最近、python の代わりに C を使って iowatcher というツールを再作成しました。今後は、フラッシュ デバイスの動きを観察するためにさまざまな機能を追加しようと思っています。 革命の日々! seekwatcher ほ〜、iowatcher なんてのもあ…

Oracle Database や OS の性能統計情報と財務諸表の共通点

…ルを調べるとプロセスファイルシステム(/proc)にアクセスしていることがわかります。プロセスファイルシステムにはディレクトリやファイルとしてアクセスできますが、実体はカーネル空間にある性能統計情報です。ファイルというシンプルなインターフェースが用意されていることで容易にアクセスできるようになっています。例えば、シェルスクリプトでプロセスファイルシステムにアクセスして性能統計情報を表示させるといったことも簡単にできます。Oracle Database ではファイルではなくビュ…

「絵で見てわかるITインフラの仕組み」という本を書きました

…ューラ)、仮想記憶、ファイルシステムなど実装は違いますが、過去から脈々と技術は受け継がれているのではないかと思います*1。で、それを知っていて何の役に立つかと言うと、本質を理解していると応用が利きます。例えば、あまり詳しくない商用UNIXでのI/O関連のトラブルシューティングをすることになった場合に、一般的にOSはこういうアーキテクチャになっているから、こことここのポイントで性能情報を取って、こうなっていれば、こうだなとかイメージができたりします。OS固有の情報取得方法を調べ…

伝承される技術

…ムコールや割り込み、ファイルシステムなど汎用機もしくはそれ以前から脈々と発展してきた技術なんだなと思う今日この頃。MULTICSがあったからUNIXが生まれたんだなとか。企業は繁栄したり滅亡したりするけど、会社は変わってもあの会社にいた人が今はあの会社にいたりと。 Unixシステムパフォーマンスチューニング 第2版作者: ジャン‐パオロ・D.ムズメキ,マイクルキダス,Gian‐Paolo D. Musumeci,Mike Loukides,砂原秀樹,高橋敏明,岡島順治郎出版社…

Windows XP のチューニング

…:00000001 ファイルシステム割り当てメモリを増加 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] "IoPageLockLimit"=dword:00010000 アクセス日時の更新をOFF [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] "NtfsDisabl…

書いてみたい本

…ロセススケジューラ、ファイルシステム、システムコールなど基本機能には共通点がある。実は脈々と受け継がれていて、全く断絶しているわけではない。 ノイマン型、チューリングマシン OSのカーネルってなに? 低レイヤーがわかれば見えてくるファイルシステム、rawデバイス、ASMの違い ハードウェアコンポーネントの接続 Kazuho@Cybozu Labs: TCP通信ではデータの送信をまとめて行うべき、もうひとつの理由(& サーバのベンチマーク手法の話) ウェブのアーキテクチャパター…

シンプルなインターフェース

*NIX のプロセスファイルシステムも Oracle Database の動的パフォーマンス・ビューも共通のインタフェース(テキストとして扱える、SQLでアクセスできる)を提供しているという点では似ていると思った。実体はメモリ上のデータ構造だと思うけど、共通のインタフェースで扱えるようにすることで、シンプルで汎用的になっていると思う。 ふと思っただけ。

Linux の Noop I/O scheduler と SSD の相性

…ますが、こんなに異なるとは予想外。 リソース消費量についても処理時間を裏付ける結果となりました。...今日の結論は、 SSD上のファイルシステムにOracleデータファイルを作成する場合は、IO Schedulerは必ず noopで! Storage, OS and Database: TPC-H Linux I/O Schedulreを変えてビックリ 関連 Linux の I/O スケジューラ - ablog Linux のI/Oスケジューラ層はどこにあるか - ablog

JFS2 の Concurrent I/O について調べたことをメモ

…ニングしない場合は、ファイルシステムのキャッシュのメリットがある気がする。バッファキャッシュのサイズが不適切に小さい場合、バッファキャッシュにはキャッシュされていなくても、物理メモリに余裕があれば、OS のレイヤーでキャッシュしてくれる。RAWデバイスのメリットはシンプルな分ファイルシステムよりオーバーヘッドが少なく、CPUやメモリを節約できる点だと思う。その代わり、メモリについてはデータベースで使う分を厳密に見積らないと物理メモリが余っているのにデータベースで使われずもった…

Linux のI/Oスケジューラ層はどこにあるか

…4-1 を見ると、 ファイルシステムやブロックデバイスファイルのレイヤの下に汎用ブロック層があって、その下にI/Oスケジューラ層があり、その下にブロック型デバイスドライバがある。 ということで ASM を使っている場合でも I/O スケジューラを経由していると思う。 関連 Linux の I/O スケジューラ - ablog Unbreakable Enterprise KernelのI/Oスケジューラは deadline - ablog Oracle Database 11…