地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Terraform】httpリクエストの結果を使ってなにかしたいときに使えるprovider

github.com 公式で提供されていた。以下のようにurlを書いてhttpリクエストのヘッダーやオプションを書くことでレスポンスを得ることができる。 data "http" "example" { url = "https://checkpoint-api.hashicorp.com/v1/check/terraform" # Optional reque…

wavをmp3に一括変換する

ディレクトリ配下のwavをmp3にしたいケースが数年ぶりに出てきたので打った。 for file in *.wav ; do ffmpeg -i $file ${file%.wav}.mp3 ; done; 10年前ならターミナルなんて使えなかったのでワンライナーでやろうなんて思うことが無かったと思うと成長した…

詳解システムパフォーマンス 第2版を読み終えた

www.oreilly.co.jp 一日1章とか少しずつ読んでいたらついに読み終わってしまった。読み始めたのが3月末なので丸2ヶ月くらいかかって読んだ。 対戦よろしくお願いします pic.twitter.com/6LVu1mu7VA— RyuichiWatanabe@gurasan (@ryuichi_1208) 2023年3月24日 …

いつか使えそうなbpftrace1行プログラミング

# シグナルの送信を検知する $ bpftrace -e 't:syscalls:sys_enter_kill {time("%H:%M:%s "); printf("%s (PID %d) send a SIG %d to `PID %d\n", comm, pid, args->sig, args->pid);}' # pid別にシステムコールの回数を調べる $ bpftrace -e 'tracepoint:ra…

いつか使えそうなbpftrace1行プログラミング

# シグナルの送信を検知する $ bpftrace -e 't:syscalls:sys_enter_kill {time("%H:%M:%s "); printf("%s (PID %d) send a SIG %d to `PID %d\n", comm, pid, args->sig, args->pid);}' # pid別にシステムコールの回数を調べる $ bpftrace -e 'tracepoint:ra…

Ubuntuのパッケージでインストールされたファイル一覧を表示する

dpkg -L パッケージ名 apt-file search ファイル名を使ってパッケージを探すこともできる

Using filesortとUsing temporary

Using filesortとUsing temporaryは最悪な組み合わせ Using filesortはソートに必要な領域がメモリ上に乗り切らずに物理ファイルに書き出しソートを行う。 Using temporaryはクエリを実行するのにテンポラリテーブルが作られる。 リアルタイム処理を行うよう…

Cが早い理由

早い理由 ・ポインタを扱えるから ・処理は自分で書いた行だけだから ・インタプリタ言語だと内部的に処理が増える ・GCがある。参照の計算がある。Cは自分でfree。 ・メモリアクセスが制限。制限部分が遅い ・歴史が長い分最適化(アセンブリレベル)されてる

Amazon Linux 2023のglibc

パッケージ名 Amazon Linux 2 Amazon Linux 2023 glibc 2.26 2.34 gcc 7.3 11.3 binutils 2.29 2.39 gccが結構違う。OpenSSL 3だったりと結構アップデートするのに必要な作業が多そう。

Web系のインフラエンジニア職として読んでおくとよさそうな本たち

1~2年目辺りで読んでおくとよさそうな本たち www.kinokuniya.co.jp www.kinokuniya.co.jp www.kinokuniya.co.jp www.kinokuniya.co.jp www.kinokuniya.co.jp www.kinokuniya.co.jp www.kinokuniya.co.jp www.kinokuniya.co.jp www.kinokuniya.co.jp www.kino…

CPUでsystemが高いときにみるもの

access.redhat.com この辺が初手だったが最近だとbpftraceなんかも割と最初の方に出てくるっぽい。負荷を生成させて調査して〜みたいなのは軽くやってみたが確かに便利な側面はありそう。今度なんかあったら使ってみよう。 atmarkit.itmedia.co.jp

詳解 システム・パフォーマンス 第2版を読み始めた

対戦よろしくお願いします pic.twitter.com/6LVu1mu7VA— RyuichiWatanabe@gurasan (@ryuichi_1208) 2023年3月24日 一人読書会をやっている。1版との違いは結構あってNetflixでどう使われているかが結構はいっているのが特徴。どこかで感想戦とかやっている場…

【Go】HasSuffix

strings.HasSuffix(s, suffix string) bool: このメソッドは、文字列 's' が指定された接尾辞 'suffix' で終わるかどうかをチェックできる package main import ( "fmt" "strings" ) func main() { var str = "hello world" var suffix = "world" var result…

【Terraform】秘匿情報をSSMから取得する

こんな感じで取得できる data "aws_secretsmanager_secret_version" "db" { secret_id = "test" } locals { credentials = jsondecode(data.aws_secretsmanager_secret_version.db.secret_string) } resource "aws_db_instance" "example" { instance_class …

【MySQL】レプリケーションラグが突然300秒とかになる現象

疑問 1分間隔でMySQLのレプリケーションラグを監視しているとして突如300秒とかが出るケースがあった。根本的な原因はよくわからなかったが起きていそうな問題について考えてみる。ざっくり以下のような事象である。 20:00 レプリカラグ0秒 20:01 レプリカラ…

社会人7年目

7年目。はやい。 2023年目標・AWS SAP取得・年間50冊は本を読む・年間100記事以上ブログ書く・カンファレンス登壇・体重75キロあたりを維持する— RyuichiWatanabe@gurasan (@ryuichi_1208) 2022年12月30日 年始に立てた目標。3ヶ月で一つ達成。本はあと30冊…

CI/CD Conference 2023でインフラのCI/CDについてお話しました #CICD2023

event.cloudnativedays.jp 3/20に開催されたCI/CD Conference 2023にオンラインで登壇しました。当日は会場へは行けませんでしたがTwitterなんかを見ていてもすごい盛り上がりだったのを感じました。 event.cloudnativedays.jp speakerdeck.com なぜ登壇しよ…

【登壇】YAPC::Kyoto 2023で障害対応について登壇してきた #yapcjapan

yapcjapan.org YAPC::Kyoto 2023で登壇してきました!これまでオフラインイベントで登壇といえば少人数でのイベントくらいでこの規模で話すのは初だったので緊張してましたが始まってしまえばとても楽しめて話せてとても良い機会になりました!ありがとうご…

【Nginx】ngx_memalignについて

"ngx_memalign"は、nginxのメモリ割り当て関数の一つで、指定されたアラインメントに合わせてメモリを割り当てます。 ngx_memalignは、以下のように定義されています。 void *ngx_memalign(size_t alignment, size_t size, ngx_log_t *log); 第1引数は割り当…

【Nginx】ngx_callocについて

"ngx_calloc"は、nginxのメモリ割り当て関数の一つです。この関数は、指定されたサイズのメモリブロックを割り当て、0で初期化します。 ngx_callocは、以下のように定義されています。 void *ngx_calloc(size_t size, ngx_log_t *log); 第1引数は割り当てた…

【nginx】proxy_ignore_client_abortとか499の話

HTTP 499 エラーはクライアントがHTTPリクエストを送った後にレスポンスを待たずに切断(FIN)を送った場合にnginxがログに出力するステータス。 実験 以下のように意図的に30秒くらい時間がかかるwebサーバを用意しておく package main import ( "fmt" "log" …

PostgreSQLのdump & restore

dump $ pg_dump database名 > backup.sql restore psql database名 < backup.sql MySQLも何もわからないがポスグレも何も分からないので入門していく。やっていこう

【Nginx】バージョンの考え方

www.nginx.com 覚えられないのでまた調べた。1.x.yみたいになっているうちのxが偶数は安定バージョン、奇数は開発バージョンとなっている。最近のOSSでこういうバージョンに意味を持たせるものを見なくなった気がする。そもそもこうおうにはどこの考えが発端…

OBD2メモ

monoist.itmedia.co.jp

【MySQL】FLUSH TABLEが刺さっていたので調べてみた

mysql> show processlist; +----+------+------------------+------+---------+------+-------------------------+--------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+------------------+--…

【MySQL】8.0化に際しての参考ページメモ

dev.mysql.com www.mysql.com blog.cybozu.io allabout-tech.hatenablog.com access.redhat.com www.docswell.com

【MySQL】Redoログを無効化する

dev.mysql.com 本番で使うのは想定されていないようだがレプリカラグがひどくて〜とかの場合に一部ケースで使えるかもしれない?クラッシュリカバリできなくなるというが少しでも早く本番投入したいレプリカサーバとかで使うとIOが減ってサービスインまでの…

【MySQL】参照系のクエリだけで大量にdisk writeを発生させるには

というのを考えてみる。 大量にクエリを実行する これが一番てっとり速い気がするクエリログを出力させておけばいい感じにディスクに書いてくれるのでwriteが発生するだろう。エラーログをわざと発生させまくるのでもwriteは発生しそう(エラーログの場合はbu…

【Mackerel】仮想メモリのチェックプラグインを書いた

github.com 指定された使用率を超えた場合にWARNやCRITにするプラグイン。失敗したら後続の処理を〜みたいなことができるので仮想メモリの使用率が高いようなサービスをrestarさせるみたいなことができる。3~4ヶ月に一回くらい発生する問題で睡眠時間を削ら…

【MySQL】トランザクションの過去のクエリを見たい

現在実行中のトランザクションからtrx_mysql_thread_idをメモする SELECT trx_id,trx_query,trx_mysql_thread_id FROM information_schema.innodb_trx ORDER BY trx_started; PROCESSLIST_IDに先ほどのtrx_mysql_thread_idを指定する SELECT THREAD_ID FROM …