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

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

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

2021年の振り返り

ryuichi1208.hateblo.jp 去年も書いていたので今年も。月毎に振り返ろうと思ったが思ったが退職のタイミングと転職したタイミングと使用期間終わりのタイミングでそれぞれ振り返っていたのでざっくりとだけ書いてみる 1~3月 目標決めとかをやった そこそこの…

Mackerelに入門して半年経ったので感想ややったことなど

qiita.com この記事はMackerel Advent Calendar 2021 の 24日目の記事です! ざっくり自己紹介 GMOペパボでインフラ周りのお仕事をメインでやってる地方在住のITエンジニアです。経歴的には5年くらいでほぼほぼインフラエンジニアをやってきました。モニタリ…

【Redis】Redisを使う時に見積の二倍の容量が必要なのは何故か

この記事は GMOペパボエンジニア Advent Calendar 2021 - Adventar の20日目の記事です。 概要 qiita.com 上記の記事でRedisを使う時に見積の二倍の容量が必要ということが述べられています。これについて細かく「なぜ?」を追求して深掘りしてみようと思っ…

tcp shutdown(2)の動きを見たりする

またまたTCPネタ。 www.amazon.co.jp を読んでいたら出てきた、shutdown(2)が色々と気になったので実験してみた。manを引くとこんな感じ。ざっくり言うとsocketに対して送信を行わない通知をしたら受信をしない通知をしたりするという機能となっています。SH…

TCP_DEFER_ACCEPTが気になったので調べた

記事を書き始めた経緯 blog.yuuk.io 上記の記事を読んでいる際にTCP_DEFER_ACCEPTなるものがあることを知ったので気になったので調べてみたメモです。 TCP_DEFER_ACCEPTとは 何はともあれmanを見ます。 linuxjm.osdn.jp TCP_DEFER_ACCEPT (Linux 2.4 以降) …

【Nginx】nginx -s reloadの実装を見てみる

nginx -s reloadはgraceful restartできるっていうけど実際どんな実装なんだろって思ったのでチラ見してみる。 公式にはどう書いてある? nginxが設定ファイルを再読込みするには、HUPシグナルがマスタープロセスに送られる必要があります。マスタープロセス…

【Linux】ファイルディスクリプタパッシングを学ぶ

qiita.com この記事はLinuxアドベントカレンダー20日目の記事です! 書いたきっかけ UNIXネットワークプログラミング〈Vol.1〉を読んでいてTCPサーバの種類を読んでいたのですが中でもファイルディスクリプタパッシングなアーキテクチャのものってあまりない…

【vim】検索の位置を表示するプラグインがあった

github.com vimrcに無理やり書いていたが綺麗に出るプラグインがあったのでこちらを使おう。

【TCP】linuxで取れるtcpのメトリクスを理解していく記事

/proc/net/netstatを頑張って理解していく。ドキュメントないものをどうやって調べていくかはちょっと悩む... netstat グラフに出てくる項目 概要 TcpExtSyncookiesSent tcp.syncookies.sent 送信されるSYNクッキーの数 TcpExtSyncookiesRecv tcp.syncookies…

tail -fをstraceしてみた

寝る直前にtail -f ってどういう仕組みなんだろって雑に思ったので実装は読まずにstraceして雰囲気だけ掴んでみた。ざっくり書くと対象のファイルをinotify_add_watch(2)して監視してそのファイルディスクリプタをreadして書き込みがあれば表示するみたいな…

2021年も終わりだしってことで今年買ったものをまとめてもう年内は何も買わないようにする記事

概要 今年買ったもののまとめ。 転職してギャンブルをやめて投資信託とかその辺に興味が出てきたのでそっちを始めるようになった年だった。 洗濯機 kakaku.com 日立 HITACHI BD-STX110GR W。洗濯機。多分フラッグシップのやつ。スマホ連携とか一ミリも使う気…

書き込みが多いサービス運用ってどうやるんだろうって散歩しながら思った話

Write-heavyなサービスを運用している場合にうまい感じにスケールさせる方法って何があるんだろうって疑問。Readが多いケースだったり整合性の要件が結果整合性とかであればRDBを使う必要はなさそうだけどそうじゃない場合みたいなやつ。 パッと思いつくのは…

tcpのrmemとかwmemとかリミットとか

tech.pepabo.com を読む前に知っておくべき知識を整理。以下のようなパラメータを理解していく。 net.core.optmem_max = 20480 net.core.rmem_default = 212992 net.core.rmem_max = 212992 net.core.wmem_default = 212992 net.core.wmem_max = 212992 net.…

selenium小技 (プロキシ/ヘッドレス)

qiita.com この記事は「Python Advent Calendar 2021」の記事です。 背景 seleniumで色々作業した時に得た知見のメモ ↓導入方法 ■ Selenium WebDriverのインストール~動かしてみる ちなみにpythonならこんな感じで爆速で始めることも可能 $ pip install sel…

【GitHub Actions】入力で型とか指定できるようになった

qiita.com この記事は「GitHub Actions Advent Calendar」の記事です。 めっちゃ便利なやつ。文字列だけしか指定できなかったのですがchoiceやbooleanを指定できるようになりました。文字列チェックをシェルスクリプトとかで実装が不要になってめっちゃ便利…

systemdのタイマーメモ

systemdタイマーのスケジューリングの指定方法のメモ書き。 毎日午後10時 OnCalendar=*-*-* 22:00:00 毎週金曜午前0時 OnCalendar=Fri *-*-* 00:00:00 5分間隔 OnCalendar=*:0/5

CircleCI上でコンテナをビルドしてDockerHubへpush

概要 DockerHubでのビルドが遅い!ってことが多いのでCircleCI上でビルドしてしまえばいいのではと思ったので環境を構築してみたメモです。 yaml 全体は下記で公開してます。 記事では抜粋して簡略化した部分を紹介してます。 ryuichi1208/py-dep-kun versio…

久々にLTをした

gmo.connpass.com 今日久しぶりに『クラウド環境で育った私が「CPU steal」という指標を知った話』ってタイトルでLTをしてきた。ペパボ入ってペパボの名前出しての登壇は初めてだった。リモートだとリアクションが分からないから不安になっていくのがいまだ…

【Linux】Nginxのtcpのbacklogの設定が何をしているのかに入門する

目次 目次 概要 tcpソケットプログラミングとは サーバ側 3way-handshakeと状態遷移 backlogとは syn-queue どうやったら溢れるか 溢れたらどうなるか accept-queue どうやったら溢れるか (メモ)Nginxのアーキテクチャ 溢れたらどうなるか tcp_abort_on_over…

成長速度が加速する要因ってなんだろう

成長速度が加速する要因ってなんだろうって散歩しながら思った。他者評価を気にしないで自分で「一気に成長したな」って感じることができたのは以下のような感じな気がする。 新しい環境に行った時 大きめのタスクをやり切った時 頼れる上司や先輩、同僚の異…

【Linux】ltraceをstraceしたらptrace(2)を知った

ltraceをstraceしたらptrace(2)の存在を知りました。 surf.ml.seikei.ac.jp ptrace() システムコールは、親プロセスが、別のプロセスの実行の監視/制御を 行ったり、コアイメージ (core image) やレジスタの調査/変更を 行ったりする手段を提供する。 ptrace…

【MySQL】非同期IO関連のエラーが出たので見てみた

非同期I/Oのコンテキスト数は/proc/sys/fs/aio-nrで確認でき/proc/sys/fs/aio-max-nrに達すると、io_setup システムコールの戻り値に EAGAIN が返される。 $ cat /proc/sys/fs/aio-nr 0 $ cat /proc/sys/fs/aio-max-nr 65536 MySQLで遊んでいたら以下のよう…

ITエンジニアの転職活動でやってみて有益だったかなって思っていることを列挙してみる

ryuichi1208.hateblo.jp って記事をちょっと前に書いたがこのときにやってた転職活動でやってみて良かったと思ったことを列挙してみる記事。転職活動自体は2021/02 ~ 2021/05くらいまでやってて選考まで進んだのは4社で3社内定の1社不採用という感じだった。…

【MySQL】アクセス頻度の多いテーブルを調べる

dev.mysql.com table_io_waits_summary_by_table テーブルを見ればわかるらしいです。テーブル定義は以下でCOUNT_*をテーブルごとに表示して時間を置いて実行することで確認することができます。 mysql> desc performance_schema.table_io_waits_summary_by_…

【MySQL】コマンドチートシート

運用する上でとりあえず打っているコマンドをまとめていく。継ぎ足し継ぎ足しで充実させていきたい。 # テーブル情報の確認 SHOW TABLE STATUS FROM <DB名>; # テーブルの定義情報の確認 SHOW CREATE TABLE <テーブル名>; # InnoDBステータスの確認 SHOW ENGINE IN</db名>…

【Nginx】graceful shutdown

Gracefull shutdownってどういう実装なの? グレースフルシャットダウンの定義を以下とするなら 停止指示後に、新しい接続を受付しない 残った処理中の接続が完了するのを待ってから、プロセスを安全に停止する TCPレイヤでやることとしたらlisten socketをc…

cpuメモ書き

40並列でリクエストしているので、php-fpm側のアクティブなプロセス数も40です。 そこでCPUを休ませずプロセスを動かすと、ほとんど均等に40分割でプロセスを動かすことになるはずです。 ※CPUとプロセスの割り当てのロジックによる誤差はたぶんあるはず イメ…

yum providesでパッケージを確認する

よく使うコマンドでもどのパッケージをインストールすればよかったっけ?って何回もやってる気がするがprovidesを使えば解決することを思い出したのでメモ。providesを使うことすら忘れてコマンド名 yumとかでググってる。これを書くことで忘れなくなるとい…

【MySQL】innodb_log_buffer_sizeとinnodb_log_file_size

違いがわからなくなるのでメモ。 innodb_log_buffer_size InnoDBの更新ログを記録するメモリ上の領域。コミットされていないトランザクションのためのバッファのサイズ 大量・巨大な blob を書き込む必要がなければ、4MB-8MBで良い innodb_log_file_size Inn…

ngx_http_limit_req_moduleに今度こそ入門する

ngx_http_limit_req_moduleの説明 説明はほぼほぼ省きます。とりあえず公式を読むのが一番良さそうです。 mogile.web.fc2.com ngx_http_limit_req_moduleモジュール (0.7.21) は、定義されたキーごとのリクエストの処理レート、特に一つのIPアドレスから来る…