2022-01-01から1年間の記事一覧
MySQLはbrewで入れてTiDBはtiupで立ち上げた直後にsysbenchを実行してみた結果。Mac上でDBを上げてMac上でsysbenchも実行するという本番ではまあ無いような構成でやっています。結果としてはMySQLの方が倍近いQPSを出していました。TiDBのスケールアップも試…
github.com RocksDBは、Key-Valueストアおよび読み取り/書き込み機能を提供するLSMツリーストレージエンジンです。 Facebookによって開発され、LevelDBに基づいています。 atmarkit.itmedia.co.jp
github.com 2022年最後の運用を少し楽にするかも知れないツールです。open(2)時のフラグをあとから知りたいという場合は/proc/${pid}/fdinfo/${fd}の中身を見る必要があるのですがこれが8進数でしか出力できないのでいい感じにパースしてくれるやつを書きま…
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #define LOG_FILE_PATH "./test.log" int main(int argc, char **argv) { int fd, size; char buf[128]; fd = open(LOG_FILE_PATH, (O_RDONLY | O_CREAT), 0664); if (fd < 0) { return -1; } int flags =</stdlib.h></stdio.h></fcntl.h></sys/stat.h></sys/types.h>…
年始に書いた目標の進捗 ryuichi1208.hateblo.jp この記事を書いて早1年が経った。2022年バージョンの振り返りです。 2022年目標・CKA or CKAD取得・AWS プロフェッショナル系取る・カンファレンス何か出る・会社のテックブログを書く— Ryuichi@Gurasan:|| (…
概要 DynamoDB、Cassandra、ScyllaDB など、多くの非常にスケーラブルな NoSQL 分散キー値型データベースの基礎となるデータ構造です。RDBでメインのB-Treeとは違ってKVSなどで使われています。一方でTiKVなどNewSQLの文脈でも登場する機会が多く知っておか…
記事説明 NewSQLに触れる機会が出てきそうなのでとりあえず概要だけでも知っておきたいので入門する。 所謂「NewSQL」と呼ばれるトランザクション処理を実現しつつもreadもwriteもスケーラビリティを備えた新しい種類のRDB。そのNewSQLの中でも今回はOSSで開…
この記事は「IT関連の普段のお仕事について色々!」の25日目の記事です!普段の仕事の工夫点や考えてることについて書いています! qiita.com 記事の概要 再現性と言語化について最近思ってることのメモ記事です。年末なのでポエム多めです。ポエムってなん…
ryuichi1208.hateblo.jp この記事の番外編?的な記事。もっと早くならんかねを検証してみる。前回よりもファイル数を倍くらいにしてる(違う検証をしてたらこうなってしまっただけ)ので前回のデータとの単純な比較は出来ないです。 前回の最速のソース #inclu…
この記事は「SRE Advent Calendar 2022」の13日目の記事です!ポエムです! qiita.com 本題 割り込みタスクの扱いが難しい— Ryuichi@Gurasan:|| (@ryuichi_1208) 2022年12月25日 スプリント計画で出たタスク以外のタスクの扱いが難しい。障害対応やアラート…
この記事は「Qiita史上最多記録をつくろう!アウトプットはいいぞカレンダー Advent Calendar 2022」の23日目の記事です!空いていたので入れちゃいました! qiita.com カレンダーの概要を見てみる 本カレンダーはQiita主催カテゴリーにおける特別企画です。…
概要 ファイル名のリストだけ高速に欲しいみたいな場合に大量にファイルがあるディレクトリでlsを打って返ってこないみたいなのが地味にストレスになったりするので高速に済ませる手段が無いかを調べてみた。 1ディレクトリに100万ファイル程度 計測前にecho…
前説 この記事は「GMOペパボエンジニア Advent Calendar 2022」の23日目の記事です! adventar.org 目次 前説 目次 本編 要件整理 結論 なにはともあれボトルネック特定/改善をしてみる 家庭用サーバの場合 Disk性能を上げてみる ネットワーク性能を上げてみ…
この記事は「Linux Advent Calendar 2022」の21日目です!空いていたのでいれさせていただきました!!:waiwai: qiita.com 概要 タイトルが全てですがある一般ユーザで実行されているプロセスがwrite権限を持ってい状態でオープンしたファイルへは別ターミナ…
mysql -e "select sleep(30)"とかやっておいてMySQL側はどういう処理をしているのかをstraceで見てみるメモ poll([{fd=41, events=POLLIN|POLLPRI}], 1, 0) = 1 ([{fd=41, revents=POLLIN}]) ioctl(41, FIONREAD, [0]) = 0 futex(0x1d8ff10, FUTEX_WAKE_PRIV…
github.com LinuxのTCPは2段(netdevもあるので厳密には3段以上)のキューの仕組みがあります。クライアントがconnect(2)はサーバ側のOSがackを返した時点でconnect(2)は戻ります。この状態でサーバアプリケーションがaccept(2)を実行することでクライアントと…
プロセスの終了はdo_exit関数で行われます。明示的にexitシステムコールを 呼び出したとき以外にも、シグナルを受けて死ぬときなどにも呼び出されます。 do_exit関数ではリソースの解放も行っており今回読みたいソケットを閉じる処理も呼び出していきます。…
まとめ var tmp []byte // こうするより str := string([]byte) // こうした方がメモリコピーが発生しないので早い str := *(*string)(unsafe.Pointer(&tmp)) 本文 以下のような関数をベンチマークしたいときに使える話です。 package main import ( "os" "r…
qiita.com この記事は「MySQL Advent Calendar 2022」の20日目の記事です!前に書いたやつ(機能発表された数時間後に書いた)の加筆修正版になります! dev.classmethod.jp AWS re:Invent 2022で発表されていた機能。最初見た瞬間「???」となった。謎技術…
この記事は「nginx Advent Calendar 2022」の17日目の記事です。 ngx_http_limit_req_moduleを使うことでリミットの制限を行うことが出来る。ここで疑問に思ったがめちゃめちゃ大量にアクセス元があるサイトでこの実装をしたときどういうメモリの使い方をし…
買ったもの紹介 TOSHIBA / 東芝 REGZA 48X8900L [48インチ] item.rakuten.co.jp 初めての有機ELテレビ。バラエティしか見ないので実はそこまで恩恵受けていない。 ハヤミ工産 自立スタンド item.rakuten.co.jp 初めてのスタンドテレビ台。壁との距離が縮まっ…
この記事は「Mackerel Advent Calendar 2022」の9日目です!去年に引き続き今年も作ったもの紹介をしてみます! qiita.com 本編 github.com /proc/meminfoをパースして出してくれるツールです。1月1日に作ったみたいでMackerelで開始した年だったようです。(…
この記事は「nginx Advent Calendar 2022」の6日目の記事です! qiita.com en.wikipedia.org nginxのアーキテクチャは親プロセス+子プロセスのアーキテクチャで子プロセス(以下ワーカプロセス)がクライアントとのやり取りを行っています。 初期化処理 親プロ…
この記事は「Go Advent Calendar 2022 3」の3日の記事です! qiita.com 前説 aws.amazon.com LambdaをGoを使って何かをしたいときにarm64 アーキテクチャを使うと早くて安くなるという情報を得ていたので調べてみた。 結論 CPUバウンドな処理じゃなければあ…
qiita.com この記事は「SRE Advent Calendar 2022」の3日目の記事です! 本編 event.cloudnativedays.jp 参加してきた。1日目。オフラインイベントめっちゃ久々だった。最後に行ったのなんだろうと考えてみたら2019のOSCのFallが最後だったっぽい。このとき…
前説 adventar.org この記事は「GMOペパボエンジニア Advent Calendar 2022」の3日目の記事です。アドカレが始まりました!もう1年が終わります!やばい!寒い!! 去年はRedisのコードリーディングを書いてましたが今年はLinuxネタです!(来週には実践Redis…
帰宅前に以下の記事を読んですごい!となったがジムのランニングマシン使用中に「2倍ってどうやったら行くん?」ってなったので調べた。 dev.classmethod.jp という機能がリリースされていた。中身自体はMySQLのDoublewrite Bufferの機能をオフにするという…
C++入門中で読みたかったので呼んでみた記事。 DBサーバが落ちた場合に切り離しまでにかかる時間 落ちた = OSごと通信不可となった場合とする。切り離しまでにかかる時間は概ね以下のように決まる shun_on_failures 1秒間あたりに失敗する接続の数の閾値。こ…
mysql-query_retries_on_failure
event.cloudnativedays.jp 参加してきた。1日目。オフラインイベントめっちゃ久々だった。最後に行ったのなんだろうと考えてみたら2019のOSCのFallが最後だったっぽい。このときはLT下記憶がある。これが2019の11月末なのでちょうど3年ぶり。すごい。 セッシ…