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

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

【ProxySQL】入門する

概要 ProxySQLを触る機会があったので入門してみた記事。2.1が最新見たいだが仕事で使うのが1.4なのでなるべくそのバージョンに合わせた内容で調べていく。(最新だとこうだね〜みたいなのは書いておくつもり) proxysql.com 目次 概要 目次 ProxySQLとは 主な…

【Linux】JVM系言語以外でも暖気運転は効果があるのかの考察(修正版的な感じ)

記事概要 今見ると色々違う気がしたので前書いたやつの修正版として上げてみた。後半は手をつけれなかった。。 JVM言語で話題の暖気運転についてJVM系言語(JIT)以外でも暖気運転は効果があるのかを考察した記事です。何かしらのベンチマークを取ったとかでは…

【k8s】ArgoRolloutsでカナリアリリースを試す

k8s

概要 github.com ArgoRolloutsを使ってさくっとカナリアリリースを試す記事です ArgoRolloutsとは KubernetesのCRDで標準ではできないブルーグリーンデプロイやカナリアリリースなどの高度なデプロイ機能を提供するOSSです。ArgoCDと組み合わせることでGitOp…

サービスディスカバリに関するメモ書き的なもの

Qiitaより転載 概要 サービスディスカバリを初めてみたのでそのメモ サービスディスカバリとは サービスディスカバリ(Service Discovery、サービス検出[1])はサービスのインスタンスがもつネットワーク上の位置を決定することである[2]。 引用元: サービス…

【Python】サブネット形式で値を渡すと国を判別するツールを書いた

github.com サブネット形式で値を渡すと国を判別するツールを書いてみました。ちなみにGeoLite2をローカルに置いてそこを参照するので外部サイトへの確認なんかを行わない作りになっています。(問い合わせし放題) 使い方はこんな感じ。slackとかから呼べると…

【Ruby】ワンライナーで便利そうなものを書いていく

背景 Ruby入門中だしでせっかくなのでRubyで便利だなぁと思ったワンライナーのTOP5を書いてみます。オプションとかは以下の記事がとてもわかりやすかったです。 maeharin.hatenablog.com 5位 webサーバ 定番のやつですね。nginxの検証とかするときにproxy先…

【Linux】fincoreコマンドを使ってファイルがページキャッシュに乗っているかを見るって記事を書こうとしたら自分で既に書いていた

「fincoreコマンドを使ってファイルがページキャッシュに乗っているかを見る」ってタイトルの記事を書いて色々ググっていたら自分で昔書いていた記事がヒットした。3年前くらいか。 qiita.com mincore(2)に見覚えがあったがなるほどとなった。。アウトプット…

【Linux】tcpdumpを使って通信しているパケットのtlsバージョンを調べるメモ

背景 提供しているサービスに対してクライアントがどのTLSバージョンで来ているのかを調べるみたいな場合にサーバのログで出せれば一番手っ取り早いですが「そんな機能ないよ!」みたいな場合も往々にしてあると思い、「その場合はどうするのが良いんだろう…

【vim】vimiumを触ってみる

Chromeの操作をvimっぽくするための拡張プラグインです。結構vimってます。 インストール方法 https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb 上記サイトへアクセスしインストールするのみ 使い方 Command Description…

【Ruby】LinuxとRubyとCoW

hiboma.hatenadiary.jp こちらのアンサー記事を書いてみますw なぜ CoW の話が出てきたのか なぜCoWを気にしたのかを話すとまず社内で動かしているAPIサーバがメモリ利用過多となってアラートがなったのが話のスタートでした。サービス自体はUnicornを使って…

【memcached】 pymemcacheは障害が発生したmemcachedを自動で切り離す

まとめ pinterest/pymemcacheは障害が発生したmemcachedを自動でリバランスして書き込みに行かないような機能を持っている 特定ノード間だけで起きてたりするとデータの不整合が発生するかもしれないから注意が必要 memcachedのクライアントを選ぶときはこの…

【Redis】キャッシュスタンピード対策をPythonで実装してみる

背景 ryuichi1208.hateblo.jp この前描いてた記事のスピンオフ的な記事でキャッシュスタンピード対策をPythonで実装するとしたらどんな感じかなと思って調べてみた記事。内容としては以下の記事でやっていることの一部を掘り下げて考えてみたという感じです…

【systemd】Type=notifyについて調べたメモ

systemdのカスタムサービスファイルを書くときにどのTypeで起動を判定するかのTypeでType=notifyについて調べたメモです。 github.com Type=notifyとは 以下のような記載があります。フォアグラウウンドで実行を継続するデーモンで使えるType=simpleとほぼ同…

【Ruby】メモリの共有率を計算するスクリプトを書いた

github.com マルチプロセスモデルなどで動くアプリケーションがどれくらい他プロセスとメモリを共有しているのかを計算スクリプトを書いてみました。 Linuxに関してのCoWの細かい話は他記事で書いてるので省略。引数のpidからtgidを中で取得したりして子プロ…

【Linux】SO_REUSEPORTに入門してGracefulなrestartを目指す

ジムのマッサージ機に乗りながらsocket(7)のmanを読んでいたらSO_REUSEPORTというオプションがあって気になって調べたのでメモ SO_REUSEPORT (Linux 3.9 以降) Permits multiple AF_INET or AF_INET6 sockets to be bound to an identical socket address. T…

【Nginx】proxy_cache_lockが思ってたのと違った件

背景 pkg.go.dev ISUCONの過去問を眺めていたらキャッシュのThundering Herd問題を解決するのにsingleflightというライブラリを使った解決策があることを知ったので調べていたらNginxでも似たようなことをできそうと言うことを知ったので調べてみたメモ。 キ…

【Nginx】proxy_cache_bypassを使ってみる。

Nginx -> appみたいな構成でproxy_cacheを入れているとappまでリクエストが到達せずにNginxがリクエストを返すことができる。これはこれでとても便利なのでがブラウザのスーパリロード時はappまで貫通させたいみたいなケースがあったので調べたメモ。 結論 p…

【Ruby】SYNCNTを調整して早めにタイムアウトさせる

自宅で動いてるVMが15台を超えそれぞれどのポートで何してるんだっけってなることが増えてきた。コマンド一発でどのサーバのどのポートがopenになってるのかを確認するコマンドが欲しくなったのでRubyで実装しようと思ってやったメモ。 実装方針 docs.ruby-l…

【Ruby】入門した

Rubyへ入門し始めたので感想とかをつらつらと。入門の動機は仕事で使う機会が出てきそうだから。がっつりアプリケーションコードを書く職種でもないけど社内の多くツールがRubyで書かれていたりアプリケーションを触る機会が出るとしたら知っておいて損ない…

【Serverspec】入門する

背景 Serverspecを見る機会があったのでこの機会に入門する。IaCのテストってすごく難しいと思っていてどこからどこまでやるかみたいな線引きがよく分からないとかもある。記事的には具体的なServerspecの使い方よりも各プロダクトでどんな使われ方してるの…

【rpmbuild】入門する

背景 rpmを作って配布してみたいなことをやっているのをみる機会があったので、どうやってんだろうと思って調べてみた。rpmbuild自体は存在も知っていたしうまくラップされたツールを使ったことがあったがオプションとか多くて驚いた。 rpmbuildとは rpmbuil…

【Octavia】入門する(?)

背景 Octaviaって言葉を目にするけどよく分かってないのでメモ書き Octaviaってなに? github.com 大規模なOpenStackで使用するためのオペレーターグレードのオープンソースのスケーラブルなロードバランサー。とりあえずはLBaaSぐらいの認識で良さそう。複…

【NewRelic】入門する

NewRelicとは エンジニアの完璧なソフトウェアの実現を支援するために構築されたオブザーバビリティプラットフォーム。アプリケーションの性能測定が簡単にできるSaaS。 newrelic.com

【Linux】コンテナとカーネルパラメータ

背景 コンテナはカーネル共有型の仮想化というのはよく言われてる話で理解はしているつもりだった。と同時に一部のコネクションメニーなwebアプリとかをコンテナで動かす場合にnet.core.somaxconnとかをいじることでカーネルがもつキューを伸ばすみたいなこ…

【dnsmasq】入門する

DNS

背景 Dnsmasqを久しぶりに使ってみたのでついでに入門的にまとめてみた。小規模の内部用(プライベート)用のDNSをお手軽に立てたいので、dnsmasqを使用してみたい程度での使用で業務用途では特にないです。 ホストファイル(形式のファイル)でDNSの設定が…

【ClamAV】入門する (Clam Antivirus)

背景 ClamAVを触る機会が出てきたので入門する。最近初見かと思いきや社内シスアド的なのやってた時にも実は触ったことがあったらしいことをローカルのメモから知った。当時はこの手のツールはとりあえず入れておけばいいんじゃないくらいで使ってたので良く…

【C】gdbでシグナルをハンドリングする

なんらかのシグナル発生時にgdbで処理を停止したい場合に使えるtips (gdb) handle SIGHOGEHOGE stop apacheとかミドルウェア止める際に便利。

【Rundeck】入門する

背景 Rundeckを使う機会というか調べる機会があったので記事としてまとめる。Jenkinsのジョブ機能の対抗馬として前に調べたことある程度でがっつり使ったことはない。 OSSのジョブスケジューラなのでGitHubでソースが読める。現在もめちゃめちゃ草が生えてて…

【HAProxy】入門する

背景 HAProxyに触れる機会が出てきそうなので調べたメモ的な記事。業務で使ってたことはあるけど実は要件書通りのパラメータで構築してそれっぽいテストしただけで実はどんな機能があってどのような特徴があるとかは何も分かってないレベル。要件定義とかも…

【Consul】ノードへのmeta_data付与

www.consul.io Consul 0.7.3以降で利用可能な機能らしい。任意のメタデータのキーと値のペアをローカルノードに関連付けることができ、特定のカタログエンドポイントからの結果をフィルタリングするために使用したりできる。以下は公式にあるサンプル。 { "n…