ablog

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

プロセス の検索結果:

CloudFormation で EMR クラスター作成時に Presto の S3 Select Pushdown を有効化する

AWS

…クラスターに転送してプロセスされる必要のあるデータ量が減るため、パフォーマンスが向上します。これらの機能の詳細については、S3 Select with Hive および S3 Select with Presto のページをご覧ください。 Amazon EMR リリース 5.18.0 にて、Flink 1.6.0、Zeppelin 0.8.0、S3 Select と Hive および Presto の併用をサポート Enabling S3 Select Pushdown Wi…

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

… I/O発行量の多いプロセスを確認する。 $ sudo iotop HDFS プロセスのシステムコールトレースを取得し、ファイルの位置と範囲を指定してランダムアクセスしていること $ sudo csysdig システムコールで読んでいるオフセットと範囲を可視化し select count(year) より select count(review_body) のほうがI/Oサイズが大きいこと Linux カーネルのブロックレイヤーのI/O量 iostat で見たI/O量が se…

Aurora PostgreSQL互換でクエリログを取得する

AWS

… データベース名、 プロセス識別子、 クライアントホスト:ポート番号、 セッション識別子、 セッション前行番号、 コマンドタグ、 セッション開始時間、 仮想トランザクション識別子、 通常トランザクション識別子、 エラーの深刻度、 SQL状態コード、 エラーメッセージ、 詳細エラーメッセージ、 ヒント、 エラーとなった内部的な問い合わせ(もしあれば)、 内部問い合わせにおけるエラー位置の文字数、 エラーの文脈、 PostgreSQLソースコード上のエラー発生場所(log_err…

perf-map-agent 実行時に "AttachNotSupportedException: Unable to open socket file" と怒られる

…てから、hdfs のプロセスにアタッチしようとすると "AttachNotSupportedException: Unable to open socket file" と怒られる $ ps -elf|grep hdfs $ sudo -u hdfs java -cp attach-main.jar:$JAVA_HOME/lib/tools.jar net.virtualvoid.perf.AttachOnce 6362 Exception in thread "main" …

Prestoでparquetファイルにクエリをかける

…でメモリ使用量の多いプロセスを確認して、presto(Java) を kill する。 http://master-public-dns-name::8889/ Netflix Vector で Memory Utilization と Disk Throughput を確認 iotop hdfs の metadata をダンプする インストール sysdig をインストールする。 sysdig でシステムワイドに実行回数が多いシステムコールを調べる - ablog ioto…

db tech showcase 2018 Day 1

DB

…トする必要がある。 プロセス(データ処理部分)のテスト観点 正確性: 仕様通りマッピング・変換されているか 非重複性: ユニークになるべきデータの組み合わせがユニークになっているか 完全性: 投入されるべきデーアが全て投入されているか 一貫性: テーブル・パーティション同士の関連性が一貫しているか 課題 変更検知した場合のエスカレーション・コミュニケーションフローは別途必要。 実データをテストに使っているため、ガバナンス・環境上の問題が起きやすい。 テスト実施コンピュートコス…

Amazon Redshift で取得できる監査ログ

AWS

…ントに関連付けられるプロセス ID。 dbname データベース名。 username ユーザー名。 authmethod 認証方法。 duration 接続時間 (マイクロ秒)。 sslversion Secure Sockets Layer (SSL) バージョン。 sslcipher SSL 暗号。 mtu 最大送信単位 (MTU)。 sslcompression SSL 圧縮タイプ。 sslexpansion SSL 拡張タイプ。 100000000000_redsh…

Amazon ECS を使ってみる

AWS

… コンテナで実行中のプロセス一覧を表示する $ docker top 621192cdd629 UID PID PPID C STIME TTY TIME CMD root 4189 4169 0 06:30 ? 00:00:00 httpd -DFOREGROUND bin 4241 4189 0 06:30 ? 00:00:00 httpd -DFOREGROUND bin 4242 4189 0 06:30 ? 00:00:00 httpd -DFOREGROUND b…

コンテナ について

…れさまざまなアプリのプロセスが稼働しています。隙間なく積まれたコンテナの群れをよく目を凝らしてみてみると、コンテナ同士はぴったりとくっついて配置されていますが、お互いのコンテナは、となりのコンテナの内容物(プロセス)は知り得ません。すなわち、ホストOSであるコンテナ船から見た人は、コンテナという分離された空間がいくつも存在するかのように見えます。これが、分離された空間=コンテナと呼ばれるゆえんです。 また、船の平らな甲板にコンテナが直接触れて置かれている点も重要です。平らであ…

Process Explorer で Windows のプロセスの環境変数を確認する

Sysinternals の Process Explorer で確認できる Process Explorer - Windows Sysinternals | Microsoft Docs How to see names and values of environment variables in Windows 8 and Windows 7

PostgreSQL で "Too many open files in system" が発生する

…cess でサーバ子プロセスごとにオープンできる上限を設定できる。ソケットを使うときもファイルディスクリプタをオープンするので max_connections の数もファイルのディスクリプタ数に関係する。 参考 max_files_per_process (integer) それぞれのサーバ子プロセスが同時にオープンできるファイル数の最大値をセットします。 デフォルトは1000ファイルです。 もしもカーネルがプロセス毎の安全制限を強要している場合、この設定を気にかける必要はあ…

nethogs でプロセス別の通信量を調べる

…なもので通信量の多いプロセスをランキング表示して、秒間通信量も見ることができる。 インストール sudo yum -y install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses* git clone https://github.com/raboof/nethogs cd nethogs make sudo make install 使ってみる sudo /usr/local/sbin/nethogs 参考 Net…

RDS PostgreSQL で大量にセッションを張った場合のメモリ使用量を調べる

…以上スワップした。 プロセス自体のメモリ、ワーク領域、ページテーブル(PTE)などで1セッションあたり、6MB以上は使っている計算になる。 検証 pgbench を以下で2つ同時に実行して、負荷をかけた。 % pgbench -r -c 1000 -j 1000 -t 100000 -U awsuser -h pg-m4xlarge-master-6.******.ap-northeast-1.rds.amazonaws.com -d mydb 結果 AWSマネジメントコンソ…

Aurora MySQL互換に LOAD コマンドで CSV ファイルをロードしようとすると "ERROR 1148 (42000)" で失敗する

…て、Web サーバープロセスが読み取りアクセス権を持つすべてのファイルを読み取ることができます (ユーザーが SQL Server に対してあらゆるコマンドを実行できる場合)。この環境では、MySQL サーバーを基準にしたときのクライアントは実際には Web サーバーであって、Web サーバーに接続するユーザーによって実行されているリモートプログラムではありません。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 6.1.6 LOAD DATA LOCAL…

macOS でシステムコールトレースを取得する

…イクロ秒) f: 子プロセスもトレースする l: プロセスIDとスレッドIDを毎行表示する o: CPU時間を表示 (単位:マイクロ秒) man NAME dtruss - process syscall details. Uses DTrace. SYNOPSIS dtruss [-acdeflhoLs] [-t syscall] { -p PID | -n name | command } DESCRIPTION dtruss prints details on proc…

コアノードから EMRFS への読み書きしているところを strace でシステムコールトレースを取得する

…ノードで Java プロセスの strace を取得する。 mkdir log pgrep java | while read LINE do sudo ./strace -Ttt -ff -yy -s 1500000 -o log/strace_log -p ${LINE} & done マスターノードで Spark Shell で S3 のファイルを読み書きする。 $ spark-shell scala> val textFile = sc.textFile("s3://…

Amazon RDS for Oracle で起動しているプロセスを確認する

AWS

…le で起動しているプロセスは V$PROCESS で確認できる。*1 $ export _JAVA_OPTIONS="-Duser.language=en -Duser.country=US" $ sql awsuser@orcl.******.ap-northeast-1.rds.amazonaws.com:1521/orcl Picked up _JAVA_OPTIONS: -Duser.language=en -Duser.country=US SQLcl: Rele…

SAP HANA Studio に表示される Database Resident Memory と HANA Used Memory の関係

…y は HANA のプロセスが使っている物理メモリサイズで、HANA Used Memory は HANA から見て論理的に使っているメモリサイズ。つまり、Database Resident Memory - HANA Used Memory の差分はOSから見ると物理メモリを使っているけど、HANA から見ると空きメモリで利用可能な領域ということだと思う。 When memory is required for table growth or for temporary c…

docker stats の CPU%

…でコンテナ内でマルチプロセス、マルチスレッドで実行されると論理CPUあたりの使用率の合計になり、100% 以上になる。ただそれだけのことだけど、意外にドキュメントに書かれてないぽい(性能分析ツールあるある)。 Container Performance Analysis from Brendan Gregg Actually 800% is correct here, which is a standard notation for telling that 8 cores …

macOS の標準パフォーマンス分析ツール

Mac

…クティビティモニタでプロセスを選択して、[表示]-[プロセスの詳細を表示] アクティビティモニタでプロセスを選択して、[表示]-[プロセスのサンプルを収集] uptime $ uptime 17:38 up 1 day, 7:05, 1 user, load averages: 1.79 2.10 2.56 top $ top -o cpu Processes: 303 total, 2 running, 301 sleeping, 1697 threads 17:40:05…

sched: Interrupt Aware Scheduler

…15日Linux のプロセススケジューラで割込み負荷の高いCPU以外にプロセス(スレッド)*1をスケジューリングするパッチらしい。 The patch avoids CPUs which might be considered interrupt-heavy when trying to schedule threads (on the push side) in the system. Interrupt Awareness has only been added into…

真のCPU使用率 by Brendan Gregg@Netflix

…) というコマンドでプロセス別の IPC を見れる。 昔、DBのアップグレードでDBサーバのCPUのクロック周波数が上がったのに比例して特定の処理にかかるCPU時間が下がらないという相談を受けて、このような説明したのを思い出しました。 The metric we all use for CPU utilization is deeply misleading, and getting worse every year. What is CPU utilization? How…

Amazon Redshift のプライマリキー

AWS

…ーションの ETL プロセスまたは他の何らかのプロセスによってこれらのキーの整合性が強要される場合は、これらのキーを宣言する必要があります。たとえば、クエリプランナーは特定の統計計算でプライマリキーと外部キーを使用して、サブクエリの非相関技術に影響を与える一意性および参照関係を推論したり、多数の結合を指示したり、冗長な結合を回避したりします。プランナはこれらのキーの関係を活用しますが、Amazon Redshift テーブルのすべてのキーがロード時に有効であることが前提となり…

「エキスパートはどう考えるか? 体感!パフォーマンスチューニング」@DB Connect 2017

…、エキスパートの思考プロセスを体感ください。 Oracle Database Connect 2017 | Japan Oracle User Group (JPOUG) というコンセプトで、AWRレポート、SQL Monitor、iostat などを見ながら2つのケースをリアルタイム分析しました。ケース1は 第51回 AWRレポートを読むステップ3: オンライン・トランザクションのスループット低下の原因特定 にしばちょう先生が解説記事を書かれています。 以下は Oracle…

よく使う truss のオプション

…<pid> f: 子プロセスもトレースする d: タイムスタンプ(秒) E: デルタタイム(秒) D: システムコール所要時間(秒) vall: 詳細表示 a: システムコールに渡される引数文字列を表示 l: 軽量プロセス(LWP) の ID を表示 e: システムコールに渡される環境文字列を表示 合わせて、pfiles でファイルディスクリプタ番号とファイルパスの対応をとっておく。 pfiles <pid> 参考 https://blogs.oracle.com/yusuk…

Power6とPower7のCPU使用率の表示方式の違い

…は63%と表示され、プロセス(スレッド)のCPU時間も63%が計上される。 参考 https://www.ibm.com/developerworks/community/files/form/anonymous/api/library/2611a60d-16eb-4932-83b5-0a823b5cf69e/document/f3e00cec-2c53-4c2d-bb47-21aaea12a20b/media/2013%20%E7%AC%AC06%E5%9B%9E%20%E…

Solaris で プロセスの環境変数を確認する方法

Linux の /proc/[pid]/environ 相当 $ pargs -e <pid> 参考 システムプロセスを管理するコマンド - Solaris のシステム管理 (上級編)

プロセスがファイルに読み書きしてる内容を覗き見する

確認方法 ファイルディスクリプタ番号を確認して ls -l /proc/<PID>/fd tail で見てみる tail -f /proc/<PID>/fd/21 実行例 $ while :; do date; sleep 5; done > foo.log & [1] 23801 $ ps -elf|egrep [2]3801 1 S oracle 23801 22232 0 76 0 - 16525 wait 11:03 pts/2 00:00:00 -bash 0 S …

JDBC Driver の(プリ)フェッチサイズを Weblogic などで設定する方法

… つまり、別のJVMプロセスからWeblogicのJDBCリソースをRMIでコールするようなケースでのみ使える。 WebLogic Server ignores this setting and does not use row prefetching when the client and WebLogic Server are in the same JVM. https://docs.oracle.com/cd/E24329_01/web.1211/e24376/rmi…

InnoDB の Double Write の話

…ロック破損。ユーザープロセスがI/Oシステムコールを発行して、カーネルモードにスイッチ後、以下のレイヤーで一部しか書けてなかったというケース。Oracle Database でソフトウェア的に partial page writes を検知する仕組みは DB_ULTRA_SAFE パラメータのような機能だけど、書込み時は検知できない。Oracle Database on Oracle Linux + ストレージでユーザー空間、カーネル空間、ストレージまで、フルスタックで書込み…