Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

serverに関するkazutanakaのブックマーク (95)

  • Netflixによるインスタンス負荷改善のための解析事例 - FPGA開発日記

    LinkedInの記事をめぐっているうちに見つけた、マイクロアーキテクチャに関する面白い事例。 CPUのマイクロアーキテクチャのさらに奥深くまで理解が必要な問題を解決するために、どのようなツールをつかってどのように解決したかの話。 netflixtechblog.com Netflix内でのワークロード最適化のため、AWSのインスタンスサイズを移行(16 vCPUから48 vCPU)し、CPUがボトルネックとなるワークロードの性能向上を図った。 このインスタンスの移行により、性能をほぼ直線的に増加させることを想定し、スループットがおよそ3倍になると予想した。 しかし、結果としてこの移行で想定する性能は達成できなかった。 https://netflixtechblog.com/seeing-through-hardware-counters-a-journey-to-threefold-pe

    Netflixによるインスタンス負荷改善のための解析事例 - FPGA開発日記
  • Building Scalable Microservices with gRPC, Spring Boot, and Maven

  • 大量メール送信のための予備知識 - エムスリーテックブログ

    【SREチーム ブログリレー1回目】 お疲れ様です。エンジニアリンググループ、コアSREの山です。 他の情報伝達手段が現れた今は「メール」は以前よりも比重は落ちたかもしれませんが、まだまだ多くの人に情報を一気に伝えるための重要なツールです。 エムスリーでは自社サーバを利用してメールの大量送信を実施していますが、メール送信を実施するにあたって気にすべき基的な事項についてシェアさせてください。 大量メール送信に関連する基的な設定 基的な設定(SPFと逆引き) DKIM IPの追加削除 バウンスメール処理 金で解決 まとめ We are Hiring! 大量メール送信に関連する基的な設定 メール送信自体はそれほど難しいものではありません。 エムスリーではpostfixを利用していますが、設定はほとんどオリジナルでもメール送信自体は可能です。せいぜいドメイン名を登録するくらいでもいけます

    大量メール送信のための予備知識 - エムスリーテックブログ
  • 令和にふりかえる C10K 問題

    C10K 問題 (the C10K problem) は1999年に Dan Kegel が発表した文章、ならびにそこで提示された「問題」です。文章はその後も2000年代前半に何度か更新されているのですが、さすがに令和に読み返すと、当初の問題意識がわかりにくいところがあります。 2000年からの10年は、 ソフトウェア面では、select(2), poll(2) にかわる新しいシステムコールの実装と、それを使ったアプリケーションの普及 ハードウェア面では、x86 アーキテクチャの64ビット移行、仮想化命令の追加と、マルチコア化 さらにそこにクラウドも登場する、面白い時代でした。ここでは、それらの出来事を中心に、さらに、当時の雰囲気をつたえるような日国内のブログやインタビュー記事をまとめることで、C10K 問題が、さまざまな側面から解決されていく流れを説明したいと思います。 書き足したいと

  • ZabbixAgentでプロセス単位のメモリ量を確認する - Qiita

    OSのメモリは標準テンプレートで確認できますが、 たとえばphp-fpmのメモリ量だけ確認したいなど、プロセス単位で知りたいとき、 ZabbixでスクリプトとUserParameterを使って確認する方法です。 対象OS Centos,Debian カスタムスクリプト作成 ※ZabbixAgentがインストールされているサーバで実施 スクリプト用ディレクトリ作成 sudo vi /etc/zabbix/script/proc_mem.sh *以下を記載 #!/bin/bash [ -z "$1" ] && COMM='.*' || COMM="$1" [ -z "$2" ] && EUSER='.*' || EUSER="$2" [ -z "$3" ] && MODE='sum' || MODE="$3" [ -z "$4" ] && ARGS_PATTERN='.*' || ARGS_P

    ZabbixAgentでプロセス単位のメモリ量を確認する - Qiita
  • うるう秒を過去のものにする時が来た

    Metaのエンジニアリング・ブログより。 BY オレグ・オブレウコフ、アフマド・ビャゴウィ うるう秒の概念は、1972年に国際地球回転・基準系事業(IERS)によって初めて導入された。これは、観測された太陽時(UT1)に不確定性があり、地球の自転が長期的に減速しているため、協定世界時(UTC)を定期的に更新しようという試みだった。この定期的な調整により、科学者や天文学者はほとんどの用途でUTCを使用して天体を観測することができるようになり、主な恩恵を受けてきた。もし、UTCの補正がなければ、天体観測のためにUTCに同期するレガシー機器とソフトウェアに調整を加えなければならなくなる。 うるう秒が導入されて以来、今日までUTCは27回更新されている。 1972年当時、うるう秒は科学界と通信業界の双方を満足させるものだったが、最近のUTCはデジタル・アプリケーションと科学者の双方にとって等しく悪

    うるう秒を過去のものにする時が来た
  • 自動化の効用

    自動化にはどういう種類があってどういうメリットが得られるのか、少なくとも自分はどういう点を主に意識しているのかを書いておこうと思う。 自動化の種類 自動化を考えるとき、2種類に分けて考えると便利だと思っている。 部分的自動化 入力から最終的な出力を生成するプロセスの一部を自動化するやつ。 大変なところだけ自動化したり、手をつけやすいところから自動化したり。 99%自動化しても、手作業が1%残っていれば部分的自動化。 全自動化 文字通り、入力から最終的な出力を生成するまでのプロセスを完全に自動化した状態。 言い換えれば、入力から出力まで、人間の手が一切不要になっている状態。 人間は寝ていても良い。 現実的な話としては、稀に例外処理が発生するくらいならこっちに入れてしまっても良いと思う。ただし、その場合も例外検出自体は自動化されている必要がある。 自動化のメリット 自動化によって得られる主なメ

    自動化の効用
  • リアルタイム共同編集のアルゴリズム (Operational Transformation; OT) を理解する試み – RORO

    Google Docsのように文書を複数人でリアルタイムに共同編集できるアプリケーションがあります。あのような機能は、多かれ少なかれ、Operational Transformation (OT; 操作変換) という考え方を使って実現されているようです。興味があったので、このOTについて調べてみました。 (追記: これからは OT でなく CRDT だという話 → I was wrong. CRDTs are the future) なおGoogle Docsではいわゆる「リッチテキスト」を共同編集できますが、ここでは話を簡単にするために「プレーンテキスト」を共同編集することを想定します。 リアルタイム共同編集の流れ 共同編集システムの登場人物は次の通りです: サーバ x 1(各クライアントから届く編集操作をもとに、最新の文書を保持します) クライアント x N(文書を編集する側です) そ

  • Tomcatのcatalina.outをsyslogサーバーに転送する | SIOS Tech. Lab

    ApacheとApache Tomcatの設定は終わっていることを前提とします。 tomcatのlog4j2設定Apache Log4j 2を下記URLからダウンロードします。 https://logging.apache.org/log4j/2.x/download.html ダウンロードしたら、解凍します。 # tar -zxvf apache-log4j-2.13.0-bin.tar.gzCATALINA_HOME配下にlog4j2ディレクトリを作成します。 # mkdir /usr/local/tomcat/log4j2apache-log4j-2.13.0-binディレクトリに移動します。 # cd apache-log4j-2.13.0-binlog4j2配下にlibディレクトリを作成し、apache-log4j-2.13.1-bin配下の log4j-api-2.13.0.j

    Tomcatのcatalina.outをsyslogサーバーに転送する | SIOS Tech. Lab
  • ネットワーク越しリトライ考 - その手の平は尻もつかめるさ

    ここ最近では何らかのインターネットサービスを構築・運用するにあたって、ネットワーク越しのリトライを考えることは避けられなくなりつつあります。 micro services のようなアーキテクチャを採用している場合はサービス間のメッセージのやり取りはまず失敗する前提 (つまりリトライをする前提) で組む必要がありますし、たくさんのクライアントがいてそのクライアントが定期的に何かを処理してセントラルにデータを送ってくる IoT のようなシステムを構築する時もその処理のリトライをよく考える必要があります。 というわけで「ネットワーク越しのリトライ」についてここ最近考えていることをざっくりと書き留めるものであります。 前提 リトライをする側をクライアント、リトライを試みられる側をサーバと呼称します リトライにおいて、サーバおよびネットワークはクライアントよりも弱者です クライアントはリトライをコン

    ネットワーク越しリトライ考 - その手の平は尻もつかめるさ
  • 東京証券取引所様の株式売買システム「arrowhead」で発生した障害の原因と対策について : 富士通

    2020年10月19日 富士通株式会社 東京証券取引所様の株式売買システム「arrowhead」で発生した障害の原因と対策について 日、株式会社東京証券取引所(以下、東京証券取引所)様より、さる10月1日に発生した東京証券取引所様の株式売買システム「arrowhead」の障害に関しての発表がありました。 東京証券取引所様、ならびに投資家の皆様、市場関係者をはじめ多くの皆様方に多大なるご迷惑をおかけいたしましたこと、あらためてお詫び申し上げます。 下記のとおり、障害の根原因および当社の品質保証体制の強化について、ご説明させていただきます。今後こうした事態を二度と起こさぬよう、再発防止に向け、全力を挙げてまいります。 記 東京証券取引所様の株式売買システム「arrowhead」障害の根原因について (1)発生事象について 東京証券取引所様に共有ディスク装置として納入した当社ストレージ製

    東京証券取引所様の株式売買システム「arrowhead」で発生した障害の原因と対策について : 富士通
    kazutanaka
    kazutanaka 2020/10/20
    メモリ障害発生時のフェイルオーバー機能の非互換な仕様変更、マニュアル記載漏れ、試験漏れ。ヒューマンエラーでした。
  • 続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi

    いつも心に冪等性。古橋です。 リトライと冪等性のデザインパターンの完結編です。 だいぶ間が空いてしまいましたが! 最後に冪等性を実装する汎用的な実装手法についてまとめていきます。 パターン6:操作ログとリクエストIDでUPDATEを冪等にする 同じIDで識別される値がUPDATEされる場合、つまりmutableである値の管理は、一般に冪等に行うのが難しい。 例えば、ユーザーごとに「最後に購入したアイテム」を更新する操作を考えてみると: 1. ユーザーAが最後に購入したアイテムをアイテム1に変更する(UPDATE) 2. ユーザーAが最後に購入したアイテムをアイテム2に変更する(UPDATE) この操作に何の対策もなくリトライを実装した場合、後続のUPDATE処理の結果を古い内容で上書きしてしまう可能性がある: 1. ユーザーAが最後に購入したアイテムをアイテム1に変更する(UPDATE)→

    続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi
  • [和訳] Dropboxアカウントのせいで胃潰瘍になった - Qiita

    こちらのReddit投稿 (https://www.reddit.com/r/sysadmin/comments/eaphr8/a_dropbox_account_gave_me_stomach_ulcers/) の和訳記事です。番環境でやらかしかった人シリーズが盛り上がっていたので波に乗って(?)Twitterにヤバすぎる恐ろしい話が流れてきたのをすかさず和訳してみました。やらかしちゃった人というよりはやらかされちゃった人目線ですがいずれにせよそこら辺の怪談話よりよっぽど怖いです。 Dropboxのアカウントのせいで胃潰瘍になった。 皆は誰もが触れたがらない、会社を紐やガムやクリップでつなぎとめている「例のアレ」を見つけたことってある?そういうのって往々にして大型連休前の金曜午後4:45に落ちるし、般若のような様相を呈した上司が「このままだと第二のスターリングラード攻防戦が勃発するぞ

    [和訳] Dropboxアカウントのせいで胃潰瘍になった - Qiita
  • バッチプログラムの運用と監視について検討しよう | メルカリエンジニアリング

    こんにちは。メルペイでバックエンドソフトウェアエンジニアをしている id:koemu です。 バッチプログラムのお話、今回は運用・監視についてお話したいと思います。当社はすべての業務が24時間行われていますので、システムがオンラインのときに動作するバッチプログラムについてのみ議論します。 過去の記事はこちらにあります。 運用に備えて バッチプログラムの運用について、「プリモーテム」「実行管理」そして「ログ管理」の3点について述べていきます。 プリモーテム ポストモーテムという言葉を聞いたことがある方はいらっしゃるかと思います。ポストモーテムとは、GoogleのSREの15章*1によれば、障害などの失敗を振り返り、今後に活かすプロセスの総称と捉えることができます。 さて、プリモーテム(プリモータム)とは何でしょうか。この言葉は、私が最近読んだThe Manager’s Path*2*3で使

    バッチプログラムの運用と監視について検討しよう | メルカリエンジニアリング
  • 続・Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん

    バッチ処理というのがそれ単体で勉強するのが難しく勉強しようとすると何に手を付けるべきかさっぱりわからないということは、先日のブログで述べたとおり。 自分が経験の中で得てきた知見は正しいのかどうか、世間の人に見てもらいたかったというのが書いた動機。 そして、新たな視点や指摘をゲットしてより不測の事態を考慮できている最高なバッチを作りたいという目的があったわけだ。 で、いろいろな意見をもらったのだけどその中で特に辛いと感じたのはこれ。 基幹システムにおけるバッチ処理みたいなものに関する知見については、カジュアルに学ぶ方法はありません。それを体系化した知識として整理した上で、実装できる組織があるんなら、それでメシがえるんじゃないですかね。— 太一 (@ryushi) 2016, 2月 18 読んでいると 「俺達は障害でつらい思いをしてるし当然先人達も障害でつらい思いをしているはずだ。 なのに、

    続・Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん
  • curl でサッと HTTP ベンチマーク - Qiita

    何故 curl を使うか HTTP のベンチマークといえば ab, JMeter, wrk など専用のツールがありますが、何故あえて単純な HTTP クライアントである curl を使うのか。 それは curl がある種の共通言語になっているからです。 WebAPIリクエスト仕様書としてcurlコマンドのご提案 cURL as DSLとは何だったのか。あるいは細かすぎて伝わらないcURL as DSL。 さらに、いくつかのツールには HTTP リクエストを curl コマンドとしてコピーする機能が実装されています。 例えば Google Chrome では Developer Tools で Network タブ上から任意のリクエストを curl コマンドとしてコピーできます。 また、mitmproxy にもそのような機能があるようです。 (まだ自分では試してませんが) mitmproxy

    curl でサッと HTTP ベンチマーク - Qiita
  • ぜんぶTIME_WAITのせいだ! - Qiita

    #課題 突然キャンペーンとかの高トラフィックが来る!とか言われると色々困ることはあるものの、今のご時世クラウドだからスペック上げときゃなんとかなるでしょ。ってとりあえずCPUとかメモリあげて見たものの、キャンペーンが始まったら意外と早くブラウザからつながらない!!とか言われたりする。 CPUもメモリもそんなに負荷は特に高くもない。調べてみたらTIME_WAITが大量にあった。 #とりあえず何とかしたい ####TIME_WAIT数をコマンドで確認 $ netstat -anp|grep TIME_WAIT __(snip)__ tcp 0 0 192.168.1.1:80 192.97.67.192:56305 TIME_WAIT - tcp 0 0 192.168.1.1:80 192.63.64.145:65274 TIME_WAIT - tcp 0 0 192.168.1.1:80

    ぜんぶTIME_WAITのせいだ! - Qiita
  • 教科書に載っていないけど、よい設計。 - Qiita

    文献やネットを調べれば、どこかにあるのかもしれない。 入社3年目の頃、目から鱗が落ちるというか、ちょっとした感動、感銘を受けた良い設計の話。 とあるバッチ処理で感銘を受けた良い設計 I.感銘を受けた良い設計 II.業務要件通りの設計なのだが、今一歩足りていない設計 何故感銘を受けたか? 業務要件では、「○○に合致したトランザクションレコードを削除のこと」というものでした。 そのまま写像すれば、II.の設計になると思いますが、I.の方が多少手間はかかっていますが、色々良いことがあり、それで感銘を受けました。 感銘を受けたこと(1):テストがしやすい ①.削除対象リストを作るまでで、JOBを止めることができるので、要件通りに削除対象が抽出されているかテストしやすい。 (脱線:この「テストしやすい」については、他にも思うことがり、別記事を書きたいことです)。 上記II.の設計だとトランザクション

    教科書に載っていないけど、よい設計。 - Qiita
  • 続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi

    三度の飯よりエラー処理。古橋です。 大変好評をいただいた序章リトライと冪等性のデザインパターンの続編です。 前回はほぼ前置きでしたが、今回は冪等でない操作を冪等にする具体的なテクニックもまとめていきます。 パターン2:エラーを区別してDELETEを冪等にする リソースに常に一意なIDが振られていれば、Deleteを冪等にするのは難しくない。そもそも同じリソースを2度削除することはできない。 一つ注意するべきなのは、削除されたリソースのIDが再利用されるケースでは、Deleteの冪等性は保証されない。例えば、kill -KILL <pid> コマンドはDelete系のAPIと考えられるが、pidは再利用されるので、何度も繰り返すと意図しないプロセスを殺してしまう可能性がある。 一般にIDの生成は非常に難しい問題だが、Deleteに関してのみ言えば再利用されなければいいので、単調増加する整数(

    続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi
  • リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi

    リトライを肴に一晩酒が飲める古橋です。 大規模なデータに触れることが日常茶飯事になっている今日この頃。この分野のおもしろいところは、いつまで経っても終わらないプログラムを簡単に作れてしまうことかもしれません。エラー処理、リトライそして冪等性*1の3つを抑えていないプログラムは、小規模なデータなら問題ないが、データ量が多くなると使い物にならなくなる可能性が大です。 大規模データをバッチ処理するケース以外でも、リトライは一般にプログラムの信頼性に関わる重要な問題です。 そんなわけで、リトライに関わるいくつかのデザインパターンを、連載でまとめておこうと思います*2。 では、第1回は背景から: なぜリトライが必要なのか プログラムは色々な理由で失敗する。例えば、 A) 通信先のプログラムが高負荷すぎて応答できなかった B) メモリを消費しすぎてメモリ確保に失敗した。またはOOM KIllerに殺さ

    リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi