ブックマーク / tagomoris.hatenablog.com (47)

  • この時期、業務で低パフォーマンスを出し続ける覚悟 - たごもりすメモ

    今この時期、もちろん弊社もCOVID-19関連の事情を鑑みてテレワーク……とはあんまり自分の回りでは言わない、リモートワーク(もっと言うとWFH: Work From Home)してる。自分が完全WFHに切り替えたのは1月半ばくらいだったかなー。もう3ヶ月ですね。 で、どうかというと、業務のパフォーマンスで見ると、自分のいまのパフォーマンスは明らかに悪い。少なくとも良くはない。それは自分でもわかってる。 でももう、これはしょうがない、と思うので、覚悟している。高パフォーマンス出せたらいいとは思うけど、同時にどう考えても無理して仕事で高パフォーマンス出すような時期でもないと思う。 だからこのエントリは、まあしょうがないよね、というのを受け入れよう、という話です。*1 なおこのエントリは業種柄、リモートワークに移行しやすい自分の話しかしていません。生活必需品や医療品関連の小売店舗や病院、窓口が

    この時期、業務で低パフォーマンスを出し続ける覚悟 - たごもりすメモ
    daiki_17
    daiki_17 2020/04/17
  • 高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ

    先にまとめると ディスクI/Oに高い負荷をかけるシステムでNVMeデバイスを使うときweekly cron jobでfstrimが走る状況になってたら停止しろ じゃないとfstrimが走った瞬間にI/Oパフォーマンスが刺さって死ぬ fstrimを停止するならdiscard mount optionを有効化しろ、ただしその状態でのI/O性能で問題ないかどうか測っておけ discard mount optionを有効化しても大きいファイルの削除には気をつけろ、プチfstrimみたいになるぞ 追記されるばかりで大きくなるファイル(そして削除されるファイル)はNVMeじゃないデバイスに置いとけ 高I/Oスループットを期待するシステムでのNVMeとfstrim 社内で小さめのインスタンスを多く並べてトラフィックを捌いてたのを色々要件があって大きめのインスタンスにまとめるようなシステムアップデートをや

    高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ
    daiki_17
    daiki_17 2019/06/24
  • Webアプリケーションのベンチマークをとるときに気をつけている10のこと - たごもりすメモ

    10もないかも、と思いながら項目を書き出してみたら10以上余裕であってキリがないので10で収めた。いやあ、あるなあ。 仕事柄よくベンチマークを実行したりしてて色々と思うところが溜まっていたところ、以下のような記事を見掛けたのでなんか書こうと思った。ところでこの記事はベンチマークを実行するための準備作業がループを回して2時間かかるところの待ち時間に書かれている。 sfujiwara.hatenablog.com ISUCONといえば多少縁があるコンテストで、文中でISUCON5のことについても言及されているので、それも含めて。 自分が業務でいじっているのは "Webアプリケーション" というとちょっと違うんじゃないのというものばかりだが、いやー、最近なんでもHTTPで外部APIを作るからベンチマークのコツとしては大体変わんなかったりするよね。 なおこの記事でベンチマークはどのようなものかとか

    Webアプリケーションのベンチマークをとるときに気をつけている10のこと - たごもりすメモ
    daiki_17
    daiki_17 2018/10/26
  • Stream Processing Casual Talks 2 にいってきた & しゃべってきた - たごもりすメモ

    開催されたので参加してきた。 ついでにちょっと前に社内でのやりとりで思い付いてそのまま温めてたアイデアがあったので形にしてしゃべってみた。 connpass.com しゃべってきた Perfect Norikra 2nd Season from SATOSHI TAGOMORI 社内でしゃべってたのは、ストリーム処理クエリって結局自分がもってるデータしか参照できなくて、じゃあ3年前のデータとJOINしたかったらクエリを3年走らせつづけないといけないの? 無理じゃね? みたいなあたり。過去データを参照したいケースは(特にビジネス要件のクエリで)普通に存在するいっぽう、現行のストリーム処理エンジンはクエリを開始した時点から受け取ったデータそのものしか参照できない*1 んで、いやよく考えたら過去データからストリーム処理クエリの計算中の状態を再現できれば、クエリ開始時に3年前からのデータをどこかか

    Stream Processing Casual Talks 2 にいってきた & しゃべってきた - たごもりすメモ
    daiki_17
    daiki_17 2017/07/28
  • okhttpで非同期リクエストを実行するとき実行スレッドはどうなっているのか - たごもりすメモ

    複数のホストに並行してHTTPリクエストを送るコードをJavaで書く必要があって、Undertowをサーバに使ってるんでUndertowの http client でもいいかなーと思ってたんだけど、okhttpにも非同期リクエストの機能があるみたい。 ただパッと見て実行スレッド数の設定とかどうなっとるんや、というのが全くわかんなかったのでちょっとコードを追ってみたところ、以下のような感じのコードを発見しました。 呼び出し順としてはの以下ような感じ。 OkHttpClient.newCall(Request req) Call.enqueue(Callback callback) RealCall.enqueue(Callback callback) client.dispatcher().enqueue(new AsyncCall(responseCallback)); ココ なんで、この

    okhttpで非同期リクエストを実行するとき実行スレッドはどうなっているのか - たごもりすメモ
    daiki_17
    daiki_17 2017/06/30
  • EmacsでJava開発をする @ 2017 - たごもりすメモ

    仕事でそれなりにまとまったJavaのコードを書くので、ちょっと真面目に手元の環境をアップデートしようと思ったらいろいろあったので、メモを兼ねてまとめる。なお手元の環境のアップデートにともない、次のエントリを大きく参考にさせていただきました。多謝。 qiita.com なおそれまでの環境は EmacsでJavaを書く - nekop's blog を元にだいぶ前に整備したもので malabar-mode をずっと使ってたんだけど、Java8 Lambdaでインデントが崩れるとかいろいろあってちょっとストレスフルだったのが主なアップデート動機。 環境は OS X El Capitan *1 + Emacs 25.2 で、全面的に MELPA をつかってパッケージ管理やっている。 結論 最終的には ENSIME (の ENJINEモード) を使っている。これでコンパイルエラーを出すとかメソッド

    EmacsでJava開発をする @ 2017 - たごもりすメモ
    daiki_17
    daiki_17 2017/05/11
  • 「そのデータ分析基盤、作るか? 使うか?」という話をしてきた - たごもりすメモ

    ファンコミュニケーションズさんが自社オフィスで勉強会をはじめるということで、第1回でしゃべりませんかというお誘いを受けたので参加してきた。お誘いありがとうございました! eventdots.jp 内容はどうしようかなと思ったんだけど、相談してみたら過去のこのエントリのスタートアップ限定じゃない話とかどうかというものがあり、自分でも面白そうだったので、そんな感じで内容をまとめてみた。 To Have Own Data Analytics Platform, Or NOT To from SATOSHI TAGOMORI まあトピックと自分の現在の勤務先からしてどうしても内容にバイアスがかかると思われるのはしょうがない……ので割り切った宣伝スライドはまあ1枚入れるとして、それ以外はいちおう公平な議論を目指したつもり。 で、中にも書いてあるけど、明確な結論なんてものはなくて、各社個別の事情にあわ

    「そのデータ分析基盤、作るか? 使うか?」という話をしてきた - たごもりすメモ
    daiki_17
    daiki_17 2017/04/26
  • CloudNativeCon Europe 2017に行ってきた&しゃべってきた - たごもりすメモ

    うぎゃあ、これ今年の初エントリなのか。なんてこった。 で、FluentdがめでたくCNCF (Cloud Native Computing Foundation)に加わって初めてのCloudNativeConなので、Treasure DataのOSSチームで都合のつく人みんなで参加してきたというやつ。前夜祭的なところで同僚の Eduardo がKeynoteをやったり、Fluentd Salonという枠がつくられてFluentd関連の話をしたり。 自分はそれとは別にTalk proposalを出していて通っていたので、それを話しに行く、というのが個人的には最大の目的。 しゃべってきた セッションはカンファレンス2日目、全体でいちばん最後の時間枠。正直話すのが終わるまで気が抜けないからあんま好きじゃないんだけど、とりあえず、やるだけはやった。けっこう多い人が来てくれて席がぜんぶ埋まる(70人

    CloudNativeCon Europe 2017に行ってきた&しゃべってきた - たごもりすメモ
    daiki_17
    daiki_17 2017/04/04
  • TCP serverをSSL/TLS化するのに nginx の stream_ssl_module/stream_proxy_module が便利 - たごもりすメモ

    最近 Fluentd の通信プロトコルまわりをアップデートするためにあれこれいじっている*1んだけど、これはおおむね fluent-plugin-secure-forward がサポートしていた内容を Fluentd 組込みの forward plugin でもサポートしますよ、というものになる。 んで問題なのが secure-forward は SSL/TLS での接続のみしかサポートしてなかったんだけど forward では生の TCP で通信する*2ので、当に secure-forward と forward それぞれの実装間で互換性が保たれているのか、直接的には確認する手段がない、ということになってしまう。 TCP server の SSL/TLS 化 一方世の中には SSL/TLS ターミネータという機能があって、たとえばロードバランサなんかがこの機能を持っている。何をやるかと

    TCP serverをSSL/TLS化するのに nginx の stream_ssl_module/stream_proxy_module が便利 - たごもりすメモ
    daiki_17
    daiki_17 2016/08/24
  • LinuxCon Japan 2016に行ってきた&しゃべってきた - たごもりすメモ

    LinuxCon Japan、今回は ContainerCon Japanとの併催。サブトラックみたいなのもいくつかあった。 とにかく普段に自分が行くカンファレンスとぜんぜん空気が違ってて、東京都内で行われてるカンファレンスなのに会場の感じとか事・飲み物の提供とか冷房のキツさとか、あれこれがだいぶ海外のカンファレンスっぽい。参加費が高いからできることなんだろうけど。そして海外からと思しき参加者も非常に多かった。すごいな。 日国内からも大手メーカー系のスポンサードと参加者が非常に多かった。普段見ないあたりの世界だなあ。 しゃべってきた プロポーザルを出してみたら通ったので初めての参加&発表だった。行ったことないので全体的にどういう空気なのかも分からないまま、初日のキーノート後の通常の発表枠の中で最初に時間だった。お、おう……。 今回はロギングに関してのアーキテクチャを議論するよ、というこ

    LinuxCon Japan 2016に行ってきた&しゃべってきた - たごもりすメモ
    daiki_17
    daiki_17 2016/07/20
  • Fluentdの設定ファイルを快適に記述するたったひとつの正しいやりかた - たごもりすメモ

    Emacs で apache-mode を使おう!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Fluentdの設定ファイルを快適に記述するたったひとつの正しいやりかた - たごもりすメモ
    daiki_17
    daiki_17 2016/05/10
  • LogStashからTreasure Dataにデータを投入する - たごもりすメモ

    このエントリは(2日遅れましたが)Treasure Data Advent Calendar 2015の12月25日分の記事です! みなさんTreasure Dataにログ入れてますか? FluentdやEmbulkで入れてますよね? しかし世界的に見てFluentdはまだまだ最有力のソフトウェアとは言えず、特にUSやヨーロッパのスタートアップ界隈ではLogStashが強い勢力を誇っています。Treasure Dataにログを投入するためだけにFluentdをインストールするのには抵抗のある向きもそちらには多いのです。 ということで、しょうがないから作りました! 日から使えます。 logstash-output-treasure_data | RubyGems.org | your community gem host tagomoris/logstash-output-treasure

    LogStashからTreasure Dataにデータを投入する - たごもりすメモ
    daiki_17
    daiki_17 2015/12/29
  • WEB+DB PRESS Vol.90にコラムを書いた - たごもりすメモ

    明後日ですね、12月23日発売の WEB+DB PRESS Vol.90 の15周年記念エッセイ「私を変えたソフトウェア」にて2ページ、記事を書きました。 たまに(?)このblogでもエモいアレを書いたりしますが、なんかそういうやつです。原稿料をもらってこういうのを書いたのは初めてです。たぶん。 gihyo.jp 内容は誌を読んでいただきたいんですが*1、要するに今現在に毎日ミドルウェアを読み書きして生活するようになったきっかけは何だったか、という話です。きっかけひとつというわけでもなく幾つか段階があるなあと思ったので、それについてつらつら思い出話のようなものを書いてます。 改めて読んでみると最後の1ステップ(現職への転職)が抜けているのでそこに何の迷いもなかったようになってますが、もちろん実際はそんなことはありません。が、まあそれはソフトウェア開発者としての転機というよりは人生どう生き

    WEB+DB PRESS Vol.90にコラムを書いた - たごもりすメモ
    daiki_17
    daiki_17 2015/12/21
  • EuRuKo2015に行ってきた - たごもりすメモ

    EuRuKo 2015 に出したトークのproposalが通ったので話しに行ってきた。往復旅費は現勤務先であるTreasure Dataに出してもらいました。ありがたや。宿泊費はなんとオーガナイザーが出してくれた。すごい。 2ヶ月ぶり生涯二度目のヨーロッパ、今回はオーストリアのザルツブルク。あいかわらず行くのは遠いし乗り継ぎも必要でちょっと大変だけど、それでも行ってよかった。たいへんよかった。 前のドイツ行きとちがって今回は日から他の参加者もいたので、というかまつもとさん、笹田さん、鳥井さんという……ひええ、超豪華メンバー、だったので、英語で疲れたときに普通に日語で話ができるのがありがたかった。あんまり大勢日人がいるのも風情がないが完全にぼっちというのもきついので、このくらいだと英語でしゃべる機会もそこそこあるし、いいな。 ということでしゃべってきた。 Data Analytics

    EuRuKo2015に行ってきた - たごもりすメモ
    daiki_17
    daiki_17 2015/10/23
  • 続: OSSプロダクトとコミュニティの話 - たごもりすメモ

    先日書いた通りYAPC::Asia Tokyo 2015でOSSの開発とメンテナンスについての私見を話したところ、会場で id:t-wada さんから強烈な質問と、その後にまとまった量のエントリがきた。 t-wada.hatenablog.jp t-wadaさんの問題意識については上記エントリを読んでいただくとして、これに関連してYAPC::Asia期間中にいろいろな人と話したこと、およびその後に考えたことなどをまとめて書き下しておこうと思う。 明快な結論は無い。無いが、自分にとってのなんとなくの指針のようなものには多分なっており、こういうことを考えて自分はこれからコードを書くんだろうな、という気がする。 なお前提として自分がYAPC::Asia Tokyo 2015で話した内容がベースにあるので、できればそちらを把握しておいてほしい。t-wadaさんのエントリにあるメモは話した内容をよく

    続: OSSプロダクトとコミュニティの話 - たごもりすメモ
    daiki_17
    daiki_17 2015/08/31
  • Docker 1.8 に Fluentd logging driver が入りました - たごもりすメモ

    以前に書いた話の続きなんだけど、Docker 1.8が出た。 blog.docker.com で、それに Fluentd logging driver が入っている。これで Docker container で起動したプロセスのSTDOUTやSTDERRを直接Fluentdに向けて投げることが可能になった。Dockerにpull-reqを送ったのは初めてだったんだけど、無事マージされてリリースまでこぎつけたので、当に出たときはほっとした。途中だいぶ大変だったので……。 Collecting All Docker Logs with Fluentd | Treasure Data Blog 5 Use Cases Enabled by Docker 1.8’s Fluentd Logging Driver | Treasure Data Blog Treasure Data blogで既に

    Docker 1.8 に Fluentd logging driver が入りました - たごもりすメモ
    daiki_17
    daiki_17 2015/08/20
  • Fluentd out_forward における最適化パラメータいくつかの話 - たごもりすメモ

    Fluentdのデータをネットワーク経由で転送するための組み込みプラグイン out_forward には最適化のための設定がいろいろあるが、内部構造への理解がないとなかなか意味がわからなかったりするものも多い。ので、あんまりいじってる人はいないんじゃないかという気がする。 最近複数の転送先へのロードバランスを out_roundrobin ベースの方法から out_forward の機能を使った方法に切り替えてみたので、ついでにそのあたりについて書いてみる。 (おまけ) out_roundrobin と out_forward(のロードバランス)の違い out_roundrobin は event stream の emit つまりFluentd内部における最小の配送処理単位ごとに配送先プラグイン(のインスタンス)を切り替える。可能な限り細かい単位で配送先をバラけさせたいときはこちらを使う

    Fluentd out_forward における最適化パラメータいくつかの話 - たごもりすメモ
    daiki_17
    daiki_17 2015/07/24
  • FluentdでバッファつきOutputPluginを使うときのデフォルト値 - たごもりすメモ

    なんか自分で docs.fluentd.org へのpatchを書いてて混乱してきたのでまとめる。コードを読んでも関係する設定値がいくつものモジュールに分散しており、完全に把握することが困難である。具体的には、この組合せを記憶だけで答えられる fluentd コミッタはおそらく一人もいない。 概要 対象は BufferedOutput および TimeSlicedOutput を継承している output plugin の全て*1。out_forward, out_exec や out_exec_filter も含まれる。 基的にはいくつかの設定により flush をするタイミングを制御するパラメータ一式、およびflush対象となるデータのチャンクを溜めておく量の上限を決めることとなる。fluentd をうっかり試したときに「アイエエエ、fluent-cat してみたんだけど、設定したと

    FluentdでバッファつきOutputPluginを使うときのデフォルト値 - たごもりすメモ
    daiki_17
    daiki_17 2015/07/24
  • fluent-plugin-forest released! - たごもりすメモ

    現状のfluentdでは、タグを動的に扱う方法がいまいち無い。具体的に言うと設定項目にタグに応じて変化するような指定をしたい場合、タグごとに分けて書くしかない。例えば out_file で出力先ファイル名をタグに応じてつけたい場合、タグの数だけ match 節を書く必要がある。 <match hoge> type file path /var/log/hoge.log </match> <match pos> type pos path /var/log/pos.log </match> # 以下いっぱいこれには極めて簡単にわかる範囲で、ふたつの大きな問題がある。 多数のタグを扱う場合、設定ファイル全体のボリュームが肥大化して管理コストが増大する(品質が低下する) 新しく扱うタグが増える場合、設定ファイルの更新と適用が必要となり、管理コストが増大する 既に手元でこの問題に悩まされていて、H

    fluent-plugin-forest released! - たごもりすメモ
    daiki_17
    daiki_17 2015/07/24
  • Fluentdでparser用の正規表現を書く・試す - たごもりすメモ

    こんなエントリを目にしたので、なんか書こうかなと思った。 fluentdのformat(正規表現)の作り方について試行錯誤中 #fluentd - Glide Note - グライドノート Fluentd の in_tail や拙作 fluent-plugin-parser ではログのparse用の正規表現を指定することになるが、確かにこれを設定してログを流して試して直して、というのはいささか効率が悪い。ので、簡単に試す方法を書いてみる。 なお irb を使う手順。ruby 1.9系がインストールされていればたぶん入っているけれど td-agent だとちょっとどうだっけ。適当にがんばっていただきたい。 とりあえず以下のようなログをparseしたいとする。 Jul 16 00:45:47 BJA login[58879]: USER_PROCESS: 58879 ttys002irbを起動

    Fluentdでparser用の正規表現を書く・試す - たごもりすメモ
    daiki_17
    daiki_17 2015/07/22