タグ

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

  • 高負荷システムで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の話 - たごもりすメモ
  • Webアプリケーションのベンチマークをとるときに気をつけている10のこと - たごもりすメモ

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

    Webアプリケーションのベンチマークをとるときに気をつけている10のこと - たごもりすメモ
  • Golangの defer をRubyでも使いたい - たごもりすメモ

    前にRubyでtry-with-resourcesが使いたいという話を書いてそのときにリリースしたgemもあるが、人類の安全に・便利にリソースを解放したいという欲求には際限がない。 try-with-resources は便利なんだけど欠点がないわけではなくて、リソースの確保と解放を一ヶ所でまとめてやらないとネストが深くなる。複数箇所に分けて書くならネストも2段になってしまう。 これはこれで整理されたコードを書く圧力になるので悪くない面もあるんだけど、とはいえもうちょっと自由にやりたい、いい方法は無いもんか、という話。 defer ある。Golangの defer が便利そう。defer foobar って書いとくと、そのスコープを外れるときに自動的に foobar の内容が実行される。あるスコープのどこに何度書いてもいい。これは便利。 # GolangのdeferのままRubyにもってき

    Golangの defer をRubyでも使いたい - たごもりすメモ
  • ネットワークの遅延について真面目に書く - たごもりすメモ

    遅延(レイテンシ)とはなにか? - はてなポイント3万を使い切るまで死なない日記 この記事に果てしなくテキトーなことが書いてあってこれを真っ向から信じられると大変迷惑なので、こと細かに真面目に書くことにする。 ……つもりだったが、なんか果てしなくめんどくさくなったのでテキトーに書き散らすことにした。大学の教科書にそのへん詳しいのがいくらでもあったのに、見付からねーし。どこいったんだ。 信号の伝送速度について まず光速度 3.0*10^8 m/s というのは真空中の値*1であって、光ファイバや電線の信号伝送速度はもっと遅い。一般的には光ファイバが 2.0*10^8 m/s 程度とか言われていて、電線についてもモノによってあれこれある。詳しくは波長短縮率とかの単語でググれ。ざっくりとでも30万キロとか恥ずかしいことは言うな。 またどんな距離の都市間でも直接接続できるわけではない。500kmくら

    ネットワークの遅延について真面目に書く - たごもりすメモ
  • RubyKaigi 2017で広島に行ってきた&しゃべってきた - たごもりすメモ

    いやー、よかったですね。旅行としても楽しかったし、いいカンファレンスでしたね。 rubykaigi.org 自分が出したTalk proposalも通ったことだし、わいわいと広島まで行ってきた。非常によくオーガナイズされて会場では快適に面白い話ばかりえんえん聞けるし、そのへんにいる人達といろんな議論をしていろいろ良いことがあった。すばらしいカンファレンスでした。主催者ならびに運営協力のかたがた、ありがとうございました。前日から最終日まで、夜のパーティーも切れ目なくたくさんあってすごかった。 しゃべってきた (photo by @koichiroo) 自分のトークのスライドはこちら。 Ruby and Distributed Storage Systems from SATOSHI TAGOMORI 動画ももう上がってた、すごい。内容で聞きたければこちらをどうぞ。Youtubeのサムネイルは

    RubyKaigi 2017で広島に行ってきた&しゃべってきた - たごもりすメモ
  • Fluentdの設定ファイルを快適に記述するたったひとつの正しいやりかた - たごもりすメモ

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

    Fluentdの設定ファイルを快適に記述するたったひとつの正しいやりかた - たごもりすメモ
    lEDfm4UE
    lEDfm4UE 2016/05/13
  • 社内ITシステムを構築・運用するのに最重要な3つのポイント - たごもりすメモ

    自社で使用するシステムを開発する、とする。 このとき迂闊にやっていると、気付いたら過去に構築したシステムのメンテナンスにばかり時間をとられ、新しいコードがぜんぜん書けていない、という状況に陥ることがある。 こうなると地獄だ。新規の興味深いコードを書くなんてとんでもない、という状態になる。メンテナンスコストを下げるためのコードすら書けなくて永遠に悲惨な撤退戦を繰り返すことになる。絶対に避けなくてはならない。 ということで、自分が心掛けていることをざっと書く。 全く手を入れずに動き続ける状態を最初に作る もちろんシステムというものは生き物なので、ある程度のメンテナンスコストが必要になる。特に会社というものは生き物なのでシステム周囲の環境は常に変化する可能性がある。データ連携している別のシステムの仕様が変われば、当然そのデータを利用する側も対応しなければならない*1。 ということで、システムには

    社内ITシステムを構築・運用するのに最重要な3つのポイント - たごもりすメモ
  • はじめてのmaven central 公開 - たごもりすメモ

    前置き:このエントリはJavaおよびJava周辺の*1開発環境に全く縁の無い人間が、可能な限り依存ソフトウェアを少なく手順をシンプルに保ったままやろうとしたものであり、知識・経験のある人にとっては全く最適な手段でなかろうことをお断りします。 先日のエントリ で書いたとおり woothee 1.0.0 をリリースした。Perl, Ruby, Node.js および PHP などはそれぞれの言語毎のモジュールリポジトリに登録されている。 が、Javaについては自分が Maven Central の勝手がわからず、されてると便利だよなーとは思いつつ放置していた。 が、なんと @making さんからMaven Central登録用の pull requestがきた 。きてしまった。これで最大の問題(xmlを書く)はおおむね解決されてしまったので、覚悟を決めて登録作業をすることにした。 せっかくや

    はじめてのmaven central 公開 - たごもりすメモ
  • gcp ja night 28いってきた&しゃべってきた - たごもりすメモ

    gcp ja night #28 - connpass BigQueryの話などがあるということで、自分もお誘いを受けたので適当にしゃべってきた。BigQueryそのものは前のほうで naoya_ito という人がやるらしかったので、Fluentdの話でもしようかなと。 BigQuery, Fluentd and tagomoris #gcpja from SATOSHI TAGOMORI 結果的に streaming inserts api の制約についての話などがそこそこ新鮮な人もいたようだった。 聞いた話とかもいろいろ面白かったけど、さすがに人が多過ぎてどういう人が来ているのか把握するのも困難、というのと、BigQueryまわりとDockerまわりの人が混ざってたのかなーという印象。 個人的にはもうちょっと話題を絞った勉強会のほうが好みだな。 なんにしろ @kazunori_279

    gcp ja night 28いってきた&しゃべってきた - たごもりすメモ
  • Reverse Proxyがなぜ必要か、勝手に補遺 - たごもりすメモ

    「全体のリソース効率を上げましょう」というためのものである。 Reverse Proxy がなぜ必要か - naoyaのはてなダイアリー これは完璧に正しくて、ただ「リソース効率」という概念はあまり具体的な想像が追い付かない人がいそうだなと思ったので、ちょっとだけ補足しようと思った。 Reverse Proxyを入れることでリソース効率の向上を狙うんだけど、それは以下のような複数の場面におけるそれぞれのリソース効率向上を複合的に狙うものだ。 通常時のトラフィック配信におけるCPU・メモリ使用率を最適化する バースト時(過負荷時)のトラフィックをより細かく制御可能とする 障害時におけるダウンタイムおよび総合的な計算・配信能力の低下を極小化する 多数のサーバによる構成全体を増強・入れ替え・移動あるいは削減する際の自由度の向上を狙う 簡単にコンピュータの性能だけで言うと最初の項目だけをリソース効

    Reverse Proxyがなぜ必要か、勝手に補遺 - たごもりすメモ
  • DISられないUIを作るために最低限守るべき5つの鉄則 - たごもりすメモ

    ぼくらが迂闊にUIを作ると、そこにはユーザの正直な目線があり、非常に様々な、そして真っ当な反応がある。 曰く「わからん」「まさかそこをクリックするとは」「不思議な動作」「独自宇宙」「モリスUI」。 反応がもらえるのは非常に良いことだが、何度も何度も繰り返しているとつらくなってくるので、できれば避けたい。分かっている(いた)ことは最初から対応しておきたいものだ。*1 ということで、ここではブラウザで操作する管理画面等のWebUIを作るとき、真っ先に心得ておくべき5つの鉄則を紹介したい。これを守っていてもDISられなくなるというわけではないが、これを守らないと間違いなくDISられるので注意しよう。 なおこの記事ではオリジナリティというものについては考慮しない。オリジナリティとか犬にわせろ。 クリックできる場所はcursor:pointerを指定しろ これを忘れるとこの世のものとは思えないくら

    DISられないUIを作るために最低限守るべき5つの鉄則 - たごもりすメモ
  • Ansible勉強会#1 にいってきた&しゃべってきた - たごもりすメモ

    Ansibleの勉強会あるといいねーという話をしていたら開催されることになったAnsible勉強会#1にいってきた。んでしゃべってきた。 Ansible 勉強会 #1 - connpass Ansible 勉強会 #1 - 資料一覧 - connpass 開催はIanががんばりました。おつかれ! あとレッドハットさんの会場を借りての実施がたいへんスムーズですばらしかった。なぜか申し込みが殺到して、新宿のほうでリモート会場まで用意されたようです。なんだそれすごい。 使ったこと無い人もけっこう参加してたようで、まあどういうものかは伝わったのかなあ。ユーザがどんどこ増えるとよいですね。 で、いろんな人がいろんな話をしててだいぶ面白い感じだった。わかりやすいansibleとはいえ他人の使いかたを聞いてると知らないこともちらほら出てくるものなので、勉強会やってるとそういうのがあってよい。 しゃべって

    Ansible勉強会#1 にいってきた&しゃべってきた - たごもりすメモ
  • 業務とオープンソース活動の話 (日本OSS奨励賞 受賞報告にかえて) - たごもりすメモ

    先日書いたエントリでも触れたけど、日OSS奨励賞、というものをいただくことになりました。ご推薦いただいた方がいるということで、当にありがとうございます。 「第9回 日OSS貢献者賞・日OSS奨励賞」受賞者を選定 | 日OSS推進フォーラム で、せっかくの機会だし、普段思っていることを書いておこうと思う。この内容はほとんど将来の自分に対する自戒だ。アレな内容になることを申し上げておきます。先日に引き続いてアレですが、まあせっかくの機会なんですよ。ねえ。 ちなみに、ちょー長くなりました。あっはっは。 業務としてのオープンソース活動 自分はフルタイムのオープンソースコミッタではない。オープンソース活動に貢献すること、などという文言は自分の業務内容にはひと言も含まれていないし、自分が所属する部署の目標にも無い。自分の業務はあくまで自社サービスに貢献すること、自社サービスの開発および運用を

    業務とオープンソース活動の話 (日本OSS奨励賞 受賞報告にかえて) - たごもりすメモ
  • Developers Summit 2014で「社内システムの構造と設計、実装のはなし」という話をした - たごもりすメモ

    登壇の機会をいただけたので、普段技術的なトピックが中心にあるカンファレンスとは違うことだし、普段あまりやらない話をしよう、ということで、そんな話をしてきました。 社内システムの構造と設計、実装のはなし from SATOSHI TAGOMORI 今回はスライドにはトピックだけ出して、あとは壇上でべらべらしゃべる、というスタイルをとったため、このスライドだけではちょっと意味がわからないところが多いだろうなあ、という気がします*1。 と思っていたら id:rx7 さんが内容をすごく丁寧にメモっておいてくださってました。こちらをどうぞ。ありがとうございます。 デブサミ2014「社内システムの構造と設計、実装のはなし」講演メモ #devsumi - 元RX-7乗りの適当な日々 自分でも内容をまとめてみようかと思いましたが、なんか散漫になるなあ、ということでいったん書いたけど削除 >< rx7さんの

    Developers Summit 2014で「社内システムの構造と設計、実装のはなし」という話をした - たごもりすメモ
  • 自家製 td-agent のrpmをつくる - たごもりすメモ

    自社サービスの運営のために fluentd を使っているとrpmでインストールできる td-agent が大変便利だ。 便利だが、自社内で使うんだから、もう最初から自社用の設定とかその設定に必要なプラグインとか入っててほしい。そんで yum install td-agent をサーバ上で実行したら設定とかいじらないでいいようにしたい。みんなラクをしたいでしょ!? もちろん td-agent のリポジトリをforkしてあれこれ手を入れればできるが、そうするとその後のメンテナンスが面倒だ。リポジトリ自体のアップデートはTreasure Dataの人に頑張っていただいて、我々は spec をいじる程度に収めておきたい。みんなラクをしたいよねー。 した いろいろと td-agent のビルドスクリプトに手を入れる必要はあったが、もうその修正は当たっているのでみなさんは以下の手順を実行するだけでよろ

    自家製 td-agent のrpmをつくる - たごもりすメモ
  • isucon3本戦いってきた&勝ってきた! #isucon - たごもりすメモ

    isucon3の戦にLINE選抜チームとして出た。ガッカリな感じだった予選時の状況はこちら。 isucon3予選参戦の記録 - tagomorisのメモ置き場 引き続き @kazeburo @sugyan @tagomoris の3人チーム。 ざっくりまとめ みんなこれまでこんな楽しいイベントに参加してたのか! ずるい!!!!!! 普段やってることを普段通りやる、と思っていたが焦って普段やらないようなミスを次々連発、社会は厳しい 思いきった構成変更とかできるのがisuconでしょwwww とかドヤ顔していたが、やりきれた。ドヤッ。 これからisuconという名前を口にするときに堂々とドヤ顔しようと思います。嘘です。元出題者のくせに成績出ないとかwwwみたいにならなくて当に安心しました。終わったあとのビールおいしかったです。 ということで、勝ちました。優勝と、あと僅差で特別賞もいただきま

    isucon3本戦いってきた&勝ってきた! #isucon - たごもりすメモ
  • Cloudera World Tokyo 2013 行ってきた&しゃべってきた - たごもりすメモ

    Cloudera World Tokyo 2013で登壇する機会をいただいたので行ってきた。 Cloudera World Tokyo 2013 | Cloudera Japan しゃべってきた しゃべる方は最近作ってるNorikra……の話だけだとなんでCloudera World Tokyoだということになるので、集計処理をSQLに一化してラクしよう、という文脈でHiveとNorikraで全部片付けるようにするといろいろ便利だしお仕事も回るよ! という話。 で、ついでにv0.1.0をリリースしたばかりのNorikraというやつがどういうソフトウェアなのか、について簡単に紹介した。どういうソフトウェアなのかがいまいちわからん、という話が同僚からも聞かれていたので、分かりやすい話を一度しておこうかなと。*1 Batch and Stream processing with SQL fro

    Cloudera World Tokyo 2013 行ってきた&しゃべってきた - たごもりすメモ
  • fluent-plugin-secure-forward v0.1系のお話 - たごもりすメモ

    前に作ってえいやでリリースしてから「メンテナ募集!」で放置されていた fluent-plugin-secure-forward ですが。 #fluentd Casual Talks #2 やってきた&fluent-plugin-secure-forwardの話 - tagomorisのメモ置き場 手元で用途無いからもうこれ以上やらないよ宣言してたんだけど、その後放置の数ヶ月を経てうっかり用途のほうが出てきてしまった。なんということだ。 v0.1.3 リリース内容 ということであれこれ直して手元で番環境に投入したので、個人的なポリシーに従って v0.1.0 としてリリースした。その後バグが見付かったりで直してたのでもう既に v0.1.3 だけど。 fluent-plugin-secure-forward | RubyGems.org | your community gem host ta

    fluent-plugin-secure-forward v0.1系のお話 - たごもりすメモ
  • 「ISUCON 夏期講習」でのisuconとWebアプリケーションについての話 - たごもりすメモ

    秋に第3回が開催されますね、ISUCON。今年は学生枠があるとのことで、それにあわせて学生のプログラマの人達に少しでもこの世界について知ってもらおうという主旨で夏期講習というイベントが開催されました。 学生限定イベント「ISUCON 夏期講習」 のご案内 : ISUCON公式Blog そこで、ISUCONとはなんなのか、Webアプリケーションを高速化させる意味ってなんなのか、ISUCONでどういうことをやればいいのか、というようなことについて簡単な話をしました。せっかくなので資料を公開しておこうと思います。 Isucon summer class_2013 from SATOSHI TAGOMORI 参加者層が読めなかったのでだいぶ基礎的なところから入ってますが、なんとなくISUCONというイベントの特殊性、というか、なんであんなイベントが成立しているのか、について話せたかなあと思ってます

    「ISUCON 夏期講習」でのisuconとWebアプリケーションについての話 - たごもりすメモ
  • Review: Instant Apache Hive Essentials How-to - たごもりすメモ

    突然英語でメールがやってきてレビューしてくれないかと頼まれ、面白そうだから引き受けて読んでみた。日語でしかレビュー記事書かないけど大丈夫? と確認したら大丈夫だといって電子書籍データをもらいました。すごいことやってる会社があるなあ。イギリスの(電子書籍専門の?)出版社みたいだけど。 なおフォーマットは pdf, epub, mobi のどれでもダウンロードできる。すごい。日はなぜこうじゃないの。 で、読んだ。76ページの短い。 ざっくり言うと 英語だけどすごく簡単な英語で書かれてて、きわめて簡単に読める。manとか普通に英語で読んでる人なら楽勝だと思う。読めば普通に導入からいろんなクエリを発行するところまで行ける。リファレンスには使えない*1けど、それはまあ、wikiを見ればいいんじゃないですかね。 各トピックについてはかなり短いが、必ず前提になるテーブルの準備をするためのクエリ*2

    Review: Instant Apache Hive Essentials How-to - たごもりすメモ