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

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

2022-01-01から1年間の記事一覧

【MySQL】テーブルロック

テーブルのロック状態を確認する方法 テーブルのロック状態を確認するには、innodb_lock_waitsを確認することでロックされている状態を取得できます。 SELECT * FROM sys.innodb_lock_waits; テーブルのロック テーブルをロックするには、LOCK TABLES文を使…

【MySQL】ロックモニターのロックの内容ごとのメモ

プライマリインデックスに対する等価検索、空振り lock_mode X locks gap before rec select * from t1 where id = 5 for update; ------------ TRANSACTIONS ------------ Trx id counter 1957 Purge done for trx's n:o < 1939 undo n:o < 0 state: runnin…

【MySQL】よく使うpt-query-digestのオプション

www.percona.com よく使うやつ --group-by fingerprintとかでまとめたいときに使う。 --order-by query_timeとかlock_timeとかrows_examinedの合計でソートしたりができる その他 出力形式が色々あってワンライナーとかCIとかと組み合わせてなにかできそうと…

【MySQL】MySQL 5.7でsysスキーマにロック状態確認ができるビューがあった

qiita.com あるトランザクションのロックが他のトランザクションのロック獲得を待たせているみたいなのを引くにはinformation_schemaのLOCK関係のテーブルをJOINしていく必要があると思っていたが上記の記事を見ていくとsysにもっと便利にみれるビューがある…

【MySQL】 InnoDB Checkpoint Ageの監視

writeされたデータがメモリ上に持ったままでよいサイズというのが innodb_log_file_size。そしてまだディスクにフラッシュされていないデータ(dirty page)のサイズが Checkpoint Age になる。innodb_log_file_sizeというサイズを増やすとこのサイズが増えて…

【MySQL】MySQLのwrite処理メモ

SQLをパーシングします 操作対象となるデータページ単位でメモリー上のBuffer Poolに呼び出し データに操作を行い、そのページがDirty Pageに Redo Logに操作と操作対象テーターなど情報を書く Redo Logをハードディスクに書き込む Dirty Pageを(ハードディ…

【MySQL】MySQLでIndexの一覧をだす

select table_schema,table_name,index_name,column_name,seq_in_index from information_schema.statistics;

寝室に作業スペースを作った

色々変えた。ケーブルどうしようってずっと悩んでる pic.twitter.com/qBT6ba3hAS— Ryuichi@Gurasan:|| (@ryuichi_1208) 2022年6月1日 念願だったスタンディングデスクを寝室に置いて寝室でも作業できるようにしてみた。仕事部屋と寝室とリビングで仕事できる…

buffer poolの用途などを調べるクエリ

SELECT page_type, COUNT(*) FROM information_schema.innodb_buffer_page GROUP BY 1;

pt-osc入門

github.com Percona社が公開しているRDBMSの運用のためのツールキットであるPercona Toolkitに含まれるツールのひとつ。Perlで書かれていて1万行くらいの大きめるCLIツール。処理の流れとかは以下の記事を参考に読んでみた。 developers.freee.co.jp スキー…

【MySQL】UNDOログとREDOログ

REDOログ 主にバックアップデータを最新のデータまで戻すために使われる。データベースが破損した時などに、データベースのリカバリしたりする UNDOログ 変更したデータを元に戻すために使われる。トランザクションをロールバックしたりする。

nginxが出してるnginxがブロッキング処理が苦手なことがわかりやすい図がめっちゃわかりやすかった。

これがめっちゃわかりやすかった。レジ打ち(ワーカー)がブロッキング処理を行うと倉庫まで荷物を取りに行って他のお客さんは処理が進まないよという意味。この辺の話って概念自体が難しかったりするがこういう喩えを使ってわかりやすく説明する技術がすごい…

EPOLLETでエッジトリガーとレベルトリガー

linuxjm.osdn.jp epoll イベント配送 (distribution) インターフェースは、 エッジトリガー (ET) としてもレベルトリガー (LT) としても動作させることができる。 と書いてあるがレベルトリガーとエッジトリガーをあまり意識して理解したことがなかったので…

nginxのログの書き込みでディスクが異常とかだとworkerが死ぬかもしれない

nginxはログの書き込みはworkerがwrite(2)を最終的に発行している。基本的にはメモリへの書き込みだけなので詰まることは無いがネットワークファイルシステムを通した先立ったりディスク異常で刺さるみたいなケースだとnginxが停止してしまう。 github.com a…

【MySQL】ファイル毎のIO量を見たりする

# クエリ毎に現在実行されているイベントを表示 SELECT EVENT_NAME,TIMER_WAIT,SQL_TEXT,LOCK_TIME,NO_INDEX_USED,SOURCE FROM performance_schema.events_statements_current; # ファイル毎のIO量など見る SELECT * FROM file_summary_by_instance WHERE co…

GWが終わってしまった(2022)

ゴールデンウィークが終わってしまった。何をしてたかを振り返ると2日に1回のペースで繁華街に出向いてはお酒を飲んでを繰り返していただけで終わった。小中高大のそれぞれの友人が久々に宮城に帰ってくるみたいな感じでそれはそれで楽しかった(ダイエット中…

CでL2のペイロードを覗き見(wi)

概要 EtherフレームはOSI参照モデルのレイヤー2に位置します。 直接通信する機器間でデータをやり取りする為の情報が入ったフレームです。 この記事ではC言語によるEtherフレームの解析を行い、Etherフレームについて理解を深めてみます。 環境構築 CentOSを…

おうちクラスタにNodeLocal DNSキャッシュを入れた

kubernetes.io

【curl】7.83.0が来てた

curl.se curl: add --no-clobber curl: add --remove-on-error というオプションが追加されていた。一つ目はローカルfsにファイルが存在する場合は上書きしなくするようなオプションで2つ目はダウンロードが失敗したときに中途半端なファイルを削除してくれ…

【Redis】7.0.0が来てた

github.com 来てた。 www.phoronix.com 目玉機能は特にみていないけど大幅な最適化が働くみたいなのはみてたのでその辺を試してみようかな。 redis 7.0.0 is now available in asdf! Run `asdf install redis 7.0.0` to install it.— asdf-vm (@_asdf_vm) 2…

【Nginx】multi_acceptを有効化すると何が変わるのかをソースも一緒に追ってみた(追記)

概要 nginxの設定でmulti_acceptという設定がありそれをon/offすることで内部的にどう変わっていくのかを追っていく記事。パフォーマンスを求める場面 では必須の設定(?)だと思うのですが実際は内部的にどういう動作となっているのかを追っていきます。ちな…

リビングにテレビを置いてみた

テレビ導入した。 pic.twitter.com/4BK8PKBOmR— Ryuichi@Gurasan:|| (@ryuichi_1208) 2022年4月24日 リビングなのか書斎なのかよくわからない部屋が一つあってそこにテレビを置いてみた。見るか見ないかで言ったら見ないんだろうけどあればそのうち使うかも…

【Go】delveで起動済みのプロセスにアタッチする

github.com delveを使って起動済みプロセスにアタッチする方法 delveをインストール $ go install github.com/go-delve/delve/cmd/dlv@latest アタッチ サンプルプログラムを用意。3秒置きに文字列を出力するやつ package main import ( "fmt" "os" "time" )…

【Go】実メモリ使用量が減少しないケース

ryuichi1208.hateblo.jp MySQLがOSにメモリを返さないというような話を前に書いた。それに付随してそういえばGoで動いているサーバもメモリ使用率高かったなというのを思い出したのでGoのメモリ管理についても調べてみた。 zenn.dev とてもわかりやすくまと…

【Nginx】SIGUSR1を受け取った後の処理をざっくり見ていく

ログローテートの記事を書くためのサンプルとしてとりあえず追っていく記事。ログローテートの設定は別でやる必要があるのでこの記事のサンプルで動作するときの流れをイメージして書いていく。 qiita.com SIGUSR1はsrc/core/ngx_config.hでdefineされている…

ディレクトリAには存在するけどディレクトリBにはいないファイルを知りたい

久々にnginxのソースを読もうとコードが置いてあるパスに移動したらどれいじったのか全く分からなくなっていた。wgetとかでとってきた履歴だけはあったので同じコマンド打ってどの辺違いあるんだっけを知りたくてシェルスクリプトを書いた。差分を見たいディ…

Goでバルクインサート

社内ポッドキャストを聞いていたら出てきた単語で一度のinsertで複数のデータをまとめてDBに入れるやつ。 GO入門中でそういえばまだやってないなと思って調べたのでメモ書き。自宅にMySQL環境が用意されたので今後も色々遊んでいこう。 query := ` INSERT IN…

tecton manifest サンプル

apiVersion: tekton.dev/v1alpha1 kind: Task metadata: name: s2i-java-8 spec: inputs: resources: - name: source type: git params: - name: PATH_CONTEXT description: The location of the path to run s2i from default: . type: string - name: TLSV…

tectonとは

Tekton とは、2019/3 に発足した Continuous Delivery Foundation がホストするプロジェクトの一つであり、サーバレスフレームワーク Knative のビルド機能 Knative Build から派生したプロジェクトです。Tekton の概要や各 Custom Resource の説明は、別記…

livenessProbe とは何か、失敗すると何が起こるか

livenessProbe に失敗したコンテナは再起動される。