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

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

2020-10-01から1ヶ月間の記事一覧

【Docker】20.10のリリースノートが公開されていた

github.com 20.10のCHANGELOGが公開されていた。リリースはまだなので変更点を確認するぐらいしか今のところない(ビルドして使おうとは思わないので。。) RootlessのGAがとても大きそう。Rootlessのためにpodmanについて調べようとか思ってたけど何もしてな…

【Redis】scanの話と計算量

Redisで有名なKEYSは、特定のパターンにマッチするKeyを検索する手法。このコマンド自体はO(N)の計算量でありデータ数が多いとその他リクエストが詰まる。パターンマッチなんかやりたくても気軽に打てないコマンド。その計算量は耐えられない場合に使えるsca…

【Ansible】Platform darwin on host using the discovered Python interpreter

macでansible使ってたらでたメッセージ2.9っていう最近のバージョンを使うと出るらしい。 Platform darwin on host using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this…

【Ansible】: Invoking "yum" only once while using a loop via squash_actions is deprecated.

Ansibleの警告文をまじまじと見てたら見つけた警告文。シンタックス的には問題ないし動作も大丈夫だよって場合にエラーにならずにログに出てるようだ。 [DEPRECATION WARNING]: Invoking "yum" only once while using a loop via squash_actions is deprecat…

【Python】cv2で画像サイズを変更

会社の精算時に領収書の添付が必要なのだがスマホで撮影して添付しようとするとサイズが大きすぎってエラーがでる。windowsでどうやって小さくするんだって考えた結果書いた方が今後も使える気がすると思い書いてみた。(それっぽいソフトは大量に引っかかる…

【memcached】memcacehdのソケットバッファのサイズ

先日調べたソケットバッファに関する記事でmemcachedはどのくらいの値を設定してるのかと思って調べたのでメモ。 memcacehd.cでsetsockopt(2)を読んでいた static void maximize_sndbuf(const int sfd) { socklen_t intsize = sizeof(int); int last_good = …

【TCP】tcpdump特定フラグのたったパケットを採取する方法

tcpdump -i eth0 '(tcp[tcpflags] & tcp-syn)' != 0 www.tcpdump.org syn以外もrstやらpshも取れるので割と重宝してます。

【Linux】net.core.(r|w)mem_maxあたりの話

概要 netstatの実行でたまに見るSendQとかRecvQの値の決定はどこで行っているかを確認した際のメモ Send-Q/Recv-Qとは Recv-Q このソケットに接続されたユーザープログラムに渡されなかったデータのバイト数。 Send-Q リモートホストに受け入れられなかった…

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

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

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

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

【Python】nginxstats.pyをpython3に対応させてみた。

searchcode.com Nginxのサーバ状況監視ツールnginxstats.pyが便利そうで使いたかったけどpython2でしか動かないみたいだったのでちょっとだけ直して使ってみた。使うにはstub_statusを有効にされてるNginxが必要で取得用のエンドポイントの設定も必要です。 …

【Apache】mod_deflateで圧縮転送

<IfModule deflate_module> SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI\.(?:gif|jpe?g|png)$ no-gzip dont-vary Header append</ifmodule>…

【Go】GitHubActions GoのCIテンプレート

build -> test -> lintをするためのgo用のテンプレートyaml lintは以下を使ってます。 github.com jobs: setup: runs-on: ubuntu-latest steps: - name: set up uses: actions/setup-go@v2 with: go-version: ^1.13 id: go - name: check out uses: actions/…

【Ansible】grusterfsのブリックの設定をansibleでやる。

シェルスクリプトでゴリ押ししてたけど公式が良さげなモジュールを作ってくれていることに気づいた。ブリック関連の作成削除はこっちでやっても良さげかもしれない。 docs.ansible.com - name: create gluster volume with multiple bricks gluster.gluster.…

【TCP】acceptした相手を表示

accept(2) manページ accept(2)の第二引数addr 引き数は sockaddr 構造体へのポインタ。この構造体には接続相手のソケットのアドレスが入っている。構造体ポインタから接続元情報を表示することで接続相手が何者かを識別できる。 以下は最小限のサンプル。tc…

【Perl】AnyEvent::HTTPでhttpリクエストを投げてみるサンプル

metacpan.org perlで何も考えずにLWPとかでhttpリクエストをたくさん投げると取得すべきURLリストの中にレスポンスの遅いサイトが存在した場合そのリクエストの待ちが発生し後続のリクエストも遅くなります。 httpを簡単にノンブロッキングで実行してくれる…

【Linux】so_reuseportに関して

背景 SO_REUSEPORTってなんだろ。https://t.co/0YDyRDKrI2— Ryuichi@Gurasan:|| (@ryuichi_1208) 2021年6月26日 so_reuseportってなんやねんと思って調べた 各OSSでの対応 Nginx Socket Sharding in NGINX OSS Release 1.9.1 apache Redis Node.js サンプル…

【Redis】redis-py pipelineを使う

ある関数内で複数回Redisとのやり取りをしている場合はpipelineを用いることで処理を一括でRedisに投げることができる機能。何が嬉しいかというとプロセス間通信によるRTTを減らすことができる。 以下はサンプル。many_get()とmpipe_line()が計測対象。デー…

ちょっと便利な数学関連の関数

pythonデータ分析試験の勉強をしつつこれperlで書くとどうなんだろってものが何点かあったのでメモ的に記載 平均 sub mean { local($s) = 0; local($n) = 0; foreach $_ (@_) { if ($_ =~ /[0-9]/) { $s += $_; $n++; } } if ($n == 0) { ""; } else { $s /=…

【C】signalfd + epoll のサンプル

typedef enum { MYOP_ERROR = -1, MYOP_NONE = 0, MYOP_QUIT, MYOP_WAITCHILD, /* snip */ } MyOperation_t; /** * AnalyseEvent - epoll_eventから任意のコマンドIDを導く */ MyOperation_t AnalyseEvent (struct epoll_event *event) { if (event->data.fd…