ablog

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

Linux

Yum でパッケージをアンインストールする

書式 $ sudo yum remove パッケージ1 パッケージ2 例 $ sudo yum -y remove pgpool-II-release-4.1-1.noarch 参考 【yum remove】yumで安全にアンインストールする方法 | UX MILK

Amazon Linux 2 で Java Mixed-Mode Flame Graphs を使う手順

Amazon Linux 2 でサクッと Java Mixed-Mode Flame Graph でプロファイリングして可視化する手順。以下は生成した Flame Graph。 Java Mixed-Mode Flame Graphs について詳しくは Java Mixed-Mode Flame Graphs で Java の CPU ネックをフルスタックで分析す…

cmake 時に "CMAKE_CXX_COMPILER-NOTFOUND" was not found と怒られる

事象 perf-map-agent を cmake しようとすると、"CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name." というエラーになる。 $ sudo yum -y install java-1.8…

簡易 Linux 性能情報取得コマンド

あえてオールドクラシックなコマンドで。 export LANG=C # vmstat nohup vmstat 5|awk '{print strftime("%Y-%m-%d %H:%M:%S"), $0}{fflush()}'> vmstat_20200826.log & # mpstat nohup mpstat -P ALL 5 > mpstat_20200826.log & # iostat nohup iostat -dx …

yum で rpm をインストールせずにダウンロードする

yum で rpm をインストールせずにダウンロードする $ yumdownloader --destdir=rpm/ java-1.8.0-openjdk-devel.x86_64 参考 yum|rpm パッケージをダウンロードする

ファイルを並行で圧縮する

8並行で圧縮する例。 find . -name '*.csv' -print0|xargs -0 -n1 -P 8 gzip & 32並行で解凍する例。 find . -name '*.gz' -print0|xargs -0 -n1 -P 32 gunzip &

split コマンドでファイルを分割する

split コマンドでファイルを分割したときのメモ。 コマンド -n: 分割数 -d: サフィックスを数字にする -a: サフィックスの桁数を指定する(2桁だと100ファイルまでしか分割できないため) --additional-suffix: 末尾にサフィックスを追加 log_10min.tsv: 分…

vsftpd で ftp サーバを立てる手順

vsftpd で ftp サーバを立てる手順。 vsftpd をインストール・起動・自動起動設定 $ sudo yum -y install vsftpd $ sudo adduser ftpuser $ sudo passwd ftpuser $ sudo systemctl start vsftpd $ sudo chkconfig vsftpd on ftp クライアントをインストール …

Linux や macOS で隠しファイルを含めて ZIP で圧縮する

Linux や macOS で隠しファイルを含めて圧縮する。 $ zip -r foo.zip . 参考 隠しファイルを含むzip

When graphing CPU as stacked area chart, which parts add up to total ?

when graphing CPU as stacked area chart, which parts add up to total ?guestirqnicestealStacking System and Users and probably wait are clear, but is nice part of user? Looks like guest is part of nice. Is irq part of sys? @OracleSK@oradiag…

iostat の avgrq-sz(average request size)の単位はセクタ数

iostat の avgrq-sz(average request size)の単位はセクタ数かKB。iostat のバージョンによって異なるので、使う環境で man で確認すべし。 iostat の出力 $ iostat -dx 2 3 Linux 4.14.146-93.123.amzn1.x86_64 (ip-172-31-10-8) 12/18/19 _x86_64_ (32 C…

Ubuntu に psql をインストールする

$ sudo apt-get install -y postgresql 参考 UbuntuでPostgreSQLをインストールからリモートアクセスまでの手順 - Qiita

Linux で Java のバージョンを切り替える

手順 java のバージョンを切り替える $ sudo update-alternatives --config java There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- * 1 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java + 2…

RHEL7 に pip をインストールする

RHEL7.6 (Kernel 3.10) に pip をインストールしたメモ。 $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py $ sudo python get-pip.py 参考 python - How to install pip on Redhat Linux - Stack Overflow

grep でパターンにマッチする・しないファイルをリストする

マッチするファイルのリスト $ grep -l END *.sql マッチしないファイルのリスト $ grep -L END *.sql 参考 » grepのオプションおさらい TECHSCORE BLOG

chroot を使ってみる

環境 $ cat /etc/issue Amazon Linux AMI release 2018.03 Kernel \r on an \m $ uname -r 4.14.33-51.37.amzn1.x86_64 準備 $ mkdir -p change/the/dir $ cd change/the/dir $ cp --parents /bin/bash . $ sudo cp --parents /bin/ls . $ sudo cp --parents…

PPS を計測する

インストール iperfをインストールする Amazon Linux で iperf を使ってみる - ablog sysstat をインストールする $ yum -y install sysstat htop 計測 サーバ側 iperf で listen する for i in {5201..5204} do iperf3 -s -p $i & done クライアント側 負荷…

YCSB をビルドしようとすると "invalid target release: 1.8" と怒られる

事象 YCSB をビルドしようとすると "invalid target release: 1.8" と怒られる。 $ git clone https://github.com/brianfrankcooper/YCSB.git $ mvn clean package Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (def…

Linux で CPU のマイクロコードのバージョンは /proc/cpuinfo で確認できる

Linux で CPU のマイクロコードのバージョンは /proc/cpuinfo で確認できる $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 63 model name : Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz stepping : 2 microcode : 0x3…

grep で特定の文字列を含むファイル名だけを表示する

grep で特定の文字列を含むファイル名だけを表示する。 % grep -l foo *.log dtruss.log 参考 grep で特定の文字列が含まれるファイル名だけをリストアップする方法 | ウェブル

less で - や + で始まるファイルを開く

- や + で始まるファイルを開こうとすると以下のようにエラーになるので、 $ less +ASM1_ora_19821.trc Missing filename ("less --help" for help) 以下のように -- とオプションをつけるとよい。 $ less -- +ASM1_ora_19821.trc 参考 less(1) - Linux manu…

dig コマンドで ドメインツリーを辿る

ルートDNSサーバからDNSコンテンツサーバまでのドメインツリーを辿りたい場合は dig +trace でできる。 % dig +trace d.hatena.ne.jp ; <<>> DiG 9.8.3-P1 <<>> +trace d.hatena.ne.jp ;; global options: +cmd . 143705 IN NS f.root-servers.net. . 143705…

GNU Parallel をインストールする

$ sudo yum -y install parallel

sysdig でシステムワイドに実行回数が多いシステムコールを調べる

Linux でシステムワイドに実行回数が多いシステムコールや実行時間が長いシステムコールを調べたい場合は、sysdig が便利です。 Sysdig Open Source - Getting Started With Csysdig - YouTube インストール root で以下を実行する。 rpm --import https://s…

vDSO gettimeofday

There is a Virtual Dynamic Shared Object (VDSO) implemented in the glibc runtime library. The VDSO maps some of the kernel code, which is necessary to read gettimeofday in the user-space. Standard Red Hat Enterprise Linux 5.5 allows the ge…

Linux で clocksource を変更する方法

Red Hat Enterprise Linux 6、 7 での clocksource の変更手順。 他のバージョンについてなどは How to change the clock source in the system - Red Hat Customer Portal 参照。 確認方法 現在の clocksource を確認する。 $ cat /sys/devices/system/cloc…

Linux で clocksource が xen と tsc で gettimeofday(2) の性能を比較する

Linux で clocksource が xen と tsc で gettimeofday(2) の性能を比較したメモ。 テストプログラムをコンパイルする 1億回 gettimeofday(2) を実行するテストプログラム(gettimeofday.c) #include <stdio.h> #include <sys/time.h> int main(void) { struct timeval tv; int co</sys/time.h></stdio.h>…

vmstat でタイムスタンプを表示する

vmstat: Support for timestamps with '-t' & fix for '-wd' From now the vmstat can append a timestamp to each line in the VMSTAT and DISKSTAT mode. You can achieve that with the '-t' switch. The '-w' switch now works in the DISKSTAT mode too…

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

nethogs はネットワークの top コマンド的なもので通信量の多いプロセスをランキング表示して、秒間通信量も見ることができる。 インストール sudo yum -y install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses* git clone https://github.com/rabo…

Linux で圧縮率の低い大きなサイズのファイルを作成する

Linux で圧縮率の低い大きなサイズのファイルを作成する方法をメモ。 $ dd if=/dev/urandom of=1gb.dat bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 12.9546 s, 82.9 MB/s $ ls -lh 1gb.dat -rw-rw-r-- 1 ec2…