ablog

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

プロセス の検索結果:

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は しばちょう先生の試して納得!DBAへの道 第51回 AWRレポートを読むステップ3: オンライン・トランザクションのスループット低下の原因特定 | Oracle Tec…

よく使う 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 + ストレージでユーザー空間、カーネル空間、ストレージまで、フルスタックで書込み…

プロセス別の PTE は /proc/[pid]/status の VmPTE で確認できる

$ cat /proc/1741/status Name: bash State: S (sleeping) Tgid: 1741 Pid: 1741 PPid: 1740 TracerPid: 0 Uid: 1200 1200 1200 1200 Gid: 54321 54321 54321 54321 FDSize: 256 Groups: 54321 54322 54323 54324 54325 54326 54327 VmPeak: 108516 kB VmSize…

strace の -y や -yy でFD番号と共にファイルパスやIPアドレス・ポート番号を表示する

…ace を使う場合、プロセスが起動している間に lsof や /proc/[pid]/fd でファイルディスクリプタ(FD)番号とファイルパスの対応を確認しておかないと、read(17, ... などと出力されている場合に、17 のファイルパスがわからなくなりますが*1、 strace 4.7 (2012年5月リリース) から -y でFD番号と対応するファイルパス Noteworthy changes in release 4.7 =====================…

よく使う strace のオプション

…クロ秒) ff: 子プロセスのシステムコールもトレースし、-o との併用でプロセス(スレッド)毎に別ファイルに出力 o: 指定したファイル名に出力。-ff と併用すると、ファイル名. に出力 s: 出力文字数を指定。デフォルト32文字。read/write システムコールなどで読み書きした内容を全て確認したい場合は、大きくする。 p: プロセスIDを指定。 $ strace -Ttt -ff -s 1500000 -o <ログ出力先ファイル名> -p <PID> もしくは $…

perf-map-agent で Java のプロセスにアタッチすると AttachNotSupportedException が発生する

…t で Java のプロセスにアタッチすると "Unable to open socket file: target process not responding or HotSpot VM not loaded" というエラーが発生する。 Java を実行する。 $ java ... 別セッションで perf-map-agent で実行中の Java のプロセスにアタッチする。 $ ps -ef|grep java $ java -cp attach-main.jar:$J…

Java Mixed-Mode Flame Graphs で Java の CPU ネックをフルスタックで分析する

…使うと Java のプロセスが CPU ネックのケースで、Java アプリケーションコード、JVM(HotSpot VM)、Linux Kernel のどのレイヤーのどの関数がボトルネックになっているかを簡単に特定することができます。 以下は GitHub - martint/jittest: Demonstrate JIT compiler issue in java 7 のワークロードを実行して Flame Graphs で可視化したものです。 以下は Java One …

実行中のマルチスレッドプログラムの特定スレッドのみ停止(SIGSTOP的な)させる方法

…p 3449-> LWP:3449 のステータスが t になりました— yohei-a (@yoheia) 2016年3月29日@yoheia gdb -iex="set non-stop on" -iex="set target-async on" -p プロセス して cont -a してから特定プロセスを interrupt してもいいですね。こちらのほうが自由にスレッド間を行き来できていいかも。— Tsukasa Hamano (@hamano) 2016年3月29日

Oracle GoldenGate 12.1.2.0.0 を使ってみる

…i manager プロセスおよび子プロセスに strace をしかける。 [oracle@ODIGettingStarted strace]$ ps -elf|grep ./[m]gr 0 S oracle 8243 1 0 80 0 - 168275 poll_s 20:10 ? 00:00:33 ./mgr PARAMFILE /u01/Middleware/OGG_Source/dirprm/mgr.prm REPORTFILE /u01/Middleware/OGG…

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

…ロックを保持しているプロセスのPID 6. ロック対象ファイル(ファイルシステムのメジャー、マイナデバイス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) - Li…

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

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