2017年ストレングスファインダー

自分のストレングスファインダーの結果を参照し、行動を振り返ったり選択するケースが増えてきた。2017年5月の時点の結果。 上位 戦略性 最上志向 親密性 内省 着想 戦略性をもつ人は、色々なものが乱雑に置かれた状態から、最終目的に到達する最前の道を発…

TCP接続を集約表示するlstfでNetlinkにより実行速度が1.6倍になった

Linuxサーバ上でホスト間コネクションを集約表示するツール lstf をつくった - ゆううきメモ にて紹介したlstfのホスト上のTCPコネクション情報の取得処理において、/proc/net/tcpを読みだす代わりに、Netlinkソケットを利用することで、実行速度が1.6倍にな…

Redisベンチマーク: EC2 C4 vs オンプレミス Xen 4.4

1年半前ぐらいに社内でベンチマークしていた結果を公開しておく。オンプレミスからAWSへ移行するときの参考にした (Webサービスをデータセンター移行するときに必要となる技術要素 - ゆううきブログ] 環境 Linux kernel 3.16, Debian 8 Redis バージョン: 2.…

読書メモ: 「Designing Data-Intensive Applications」Chapter 1. Reliable, Scalable, and Maintainable Applications

感想 Chapter1は、本書のサブタイトルにもなっている、データシステム全体の非機能要件に関する用語(Reliability, Scalability, Maintainability)の定義をしている。 もうわかってるよととばしたくなるけれど、人に説明するときのリファレンス元として重宝す…

「喜嶋先生の静かな世界」

4年前に買ったのと同じ本棚が届いて、散らかった本を本棚に並べていると、以前になくしたと思っていた、「喜嶋先生の静かな世界」を発見して再読していた。 主人公は、研究室配属された大学生で、恩師である喜嶋先生との研究に没頭した生活が描かれている。…

GoバイナリのGitHubリリース: gobump + ghch + goxz + ghr

Go

最近は、GoバイナリのGitHubリリースにgobump、ghch、goxz、ghrを利用している。これらのツールを組み合わせることで、repairableな形でリリース作業を自動化できる。 GoバイナリのGitHubリリースに一般的に必要な一連のプロセスを分解すると、下記のように…

Linuxサーバ上でホスト間コネクションを集約表示するツール lstf をつくった

概要 netstatやssコマンドにより、あるホストと他のホストとのコネクションを一覧表示できる。しかし、Webシステムの場合、クライアントが並行接続するため、 同一ホストから複数のポートを介してコネクションを確立しているケースが多い。コネクション数が…

LinuxサーバでネットワークI/Oで刺さっている接続先を発見する

Linuxサーバの障害対応で社内で伝統的に使われているテクニック。I/Oで完全にブロックしているポイントを特定するノウハウ。 問題対応のため、怪しいプロセスをstraceしてみる read(2)やwrite(2)でブロックしていることを発見する read(2)やwrite(2)、connec…

DNS権威サーバの引っ越し手順メモ (BINDドキュメント)

DNS

だいぶ昔に同僚にBINDドキュメントを読むのがよいと言われたときに調べたことを社内wikiで発掘した。この手順では、NSレコードセットに新旧の権威サーバが含まれた中間状態を作ることになっていて、丁寧。実際は、JPRSのガイド に沿っていればだいたいうまく…

tcpdumpでMySQLサーバに流れてくるクエリをみる

社内のMySQLマスターのtcpdumpの様子。マスタ切り替えした後に切り替え先でクエリが流れているかをみる。単に3306ポートのパケットを流すだけでもよいが、接続確立に失敗しているがパケットは流れてくるという状況もあるので、SQL文が流れているかまでみるの…

論文 TKDE'17, Time Series Management Systems: A Survey

Cyber Physical Systems*1の文脈における時系列データベース(TSDB)のサーベイ論文。論文中では、TSDBをTime Series Management System(TSMS)と表現されている。 Stream Processing*2とApproximate Query Processing(AQP) *3 TKDEは、SIGMODやVLDBといったト…

論文 BTW'17, Survey and Comparison of Open Source Time Series Databases

[1]: B. Mitschang et al. 2017. Survey and Comparison of Open Source Time Series Databases. In BTW. slide どんなものか 全てのオープンソース時系列データベース(以下TSDB)の完全なリストと、人気のあるTSDBの機能リストを作成することが目的。 機械的…

論文 Middleware'17, Data-Driven Serverless Functions for Object Storage

[1]: Josep Sampé, Marc Sánchez-Artigas, Pedro García-López, Gerard París. 2017. Data-Driven Serverless Functions for Object Storage. In Middleware. [2]: Josep Sampé. zion. https://github.com/JosepSampe/zion 論文のPDFは http://2017.middlewa…

ウェブシステム内の待ち行列をMackerelで可視化してみる

この記事は、Mackerel Advent Calendar 2017の19日目の記事です。 前日は fullsat_ さんによる Lambdaを使ってMackerelのアラートをRedmineのチケットにする でした。 ウェブシステムの障害発生時に、どのコンポーネントの処理が滞っているかをざっくり知り…

詳解システムパフォーマンス 8章ファイルシステム メモ

今回も章末の練習問題をみながら、みんなで議論をしていた。 アプリケーションの I/O パフォーマンスを解析するときには、ファイルシステムのパフォーマ ンスの方がディスクパフォーマンスよりも大きな問題になる。ファイルシステムは、アプリ…

詳解システムパフォーマンス 7章「メモリ」メモ

しばらく輪読を休んでたけど、再開した。第7章「メモリ」。 章末の練習問題を見ながら、みんなで議論していた。 メモリのページとはなにか OSとCPUがメモリを管理する単位 仮想メモリとは何か 無限のメモリの抽象 メインメモリとスワップ領域を抽象化してい…

書籍「Mackerel サーバ監視[実践]入門」執筆成功

執筆成功と言いつつ、自分は元となった連載記事をいくつか書いただけで、書籍化にあたってはプロフィールを書く以外のことは何もしていません。気づいたら、書籍を初執筆していたことになりました。 書籍「Mackerel サーバ監視[実践]入門」を執筆しました …

Go言語をほぼ毎日書いている話 (序)

はてなの京都オフィスで開催された そうだ Go、京都。 - connpass にて、「Go言語をほぼ毎日書いている話(序)」というふわっとした話をしました。いわゆる Write Code Every Dayという活動ですね。 タイトルに(序)と付けているのは、書き始めてまだ5ヶ月程度…

mkr + peco + tmux + ssh

Mackerel Meetup #10 Tokyo のLT枠で「mkr + peco + tmux + ssh」というタイトルで話をしました。当日の発表スライドを以下に貼っておきます。 speakerdeck.com 話の内容は、tmux + ssh + Mackerel API を組み合わせたとにかくモダンなサーバオペレーション …

詳解システム・パフォーマンス 3章「オペレーティングシステム」輪読メモ

詳解システム・パフォーマンス 第2章「メソドロジ」メモ - ゆううきメモ の続き。今回は第3章「オペレーティングシステム」 システムパフォーマンス分析では、オペレーティングシステムとそのカーネルについての理解は必要不可欠だ。システムコー…

書籍「Designing Data-Intensive Applications」下読み

全体として何に関する本か ストレージとデータ処理技術に関する基礎概念について、原理と実践の両方の観点を通して、読者がdata-intensive applicationsを構築するための技術選択の意思決定を助ける本である。 この分野は、NoSQL、ビッグデータ、スケーラビ…

MySQLの同期レプリケーションで複数の更新クエリを1トランザクション内で発行すると速くなるケース

っていう話をいちりんちゃんこと id:ichirin2501 に聞いた。 MySQLで準同期レプリケーションまたは同期レプリケーションを使って、マスター・スレーブ構成で運用している場合、マスターはコミット後、スレーブが更新イベントを受け取ってログに書き込むまで…

詳解システム・パフォーマンス 第2章「メソドロジ」メモ

書籍「詳解システム・パフォーマンス」 下読み - ゆううきメモ の続き。今回は第2章「メソドロジ」。 パフォーマンスアナリストが複雑なシステムに立ち向かうときに、パフォーマンス問題を起こ している場所を特定し、問題を分析するためにどこから…

書籍「詳解システム・パフォーマンス」 下読み

詳解システム・パフォーマンス輪読を始めた。初回は、全体把握と第1章。 全体把握というのは、書籍「本を読む本」でいうところの読書の第2段階「点検読書」のうち組織的拾い読みに該当する。さらに同著には、積極的読書のためには質問をすることが重要と書か…

最近のXenの変遷について

Xen をとりまく状況 【仮想化道場】コードの全面的なリフレッシュを行ったハイパーバイザー「Xen 4.5」 - クラウド Watch が詳しい。 2003年 Xen 最初のバージョン公開 2007年 CitrixがXenSourceを買収 => 開発がスローペースに 2011年 Linux 3.0 からメイン…

OS仮想化の性能オーバヘッド

ハードウェア仮想化に対するOS仮想化の利点と欠点 - ゆううきメモ の続き。 Systems Performance 11.2.1 Overheadの内容。 OS仮想化の性能オーバヘッドは、CPU実行とI/Oのオーバヘッド、他のテナント(ゲスト)からの影響にまとめられる。 CPU CPU実行のオーバ…

マルチスレッドアプリケーションにおける同期プリミティブ

Systems Performance 5.2.5 Concurrency and Parallelism に各種同期プリミティブについて書かれている。 マルチスレッドプログラミングは、マルチプロセスプログラミングのIPCのような、オーバヘッドのあるインタフェースなしで、スレッドが同じメモリに読…

ハードウェア仮想化に対するOS仮想化の利点と欠点

Systems Performance 11.2 OS Vertualization の内容。 基本的には、ハードウェア仮想化はリソースを二重に持っている分、オーバヘッドがあるけれども、その分独立性が高い、ということ。 Advantages ホストカーネルに対して、ゲストアプリケーションのI/Oオ…

リトルの法則とキャパシティプランニング

(引用: Systems Performance figure 2.18 Queueing Model) リトルの法則とは、安定した系において、平均待ち行列数は、平均到着率と平均待ち時間の積に等しい、という法則である。 (Systems Performanceの原文ではaverage service timeになっていたが、正確…

StackOverflowのシステムアーキテクチャ

Scaling Stack Overflow: Keeping it Vertical by Obsessing Over Performance from C4Media www.slideshare.net www.infoq.com “退屈さ”を維持する方法論に意味がある 知っていることから始めて,実地で測定し,遅い部分を直す パフォーマンスはサービスの"…