タグ

ブックマーク / dsas.blog.klab.org (16)

  • ISUCON4 予選で workload=5 で 88000点出す方法 (lily white 参戦記) : DSAS開発者の部屋

    ISUCON4 予選1日目に、 lily white というチームで参戦してきました。 試合中に 62000 点は出していたのですが、最終的に提出したスコアは 60344 点でした。 以降、予選終了までと、その後に気づいたさらにスコアを上げる方法について書いていきます。 実際の提出時のコードは methane/isucon4q-go リポジトリの "final" タグを見てください。 準備 (~前日) 予選方式が発表された時点で、 isucon3 予選と同じ方式だったので、有効な作戦もほぼ同じになる事が予測できました。 具体的には以下のとおりです。 PIOPS な EBS を使わないので、性能が不安定なディスクがネックになる問題は無いでしょう。 1インスタンスのみを使うということから、ネットワーク帯域がネックになる可能性も無いはずです。 ほぼ確実に CPU ネックな問題が出るはずです。 ア

    ISUCON4 予選で workload=5 で 88000点出す方法 (lily white 参戦記) : DSAS開発者の部屋
    lesamoureuses
    lesamoureuses 2014/09/29
    すごい “GCを頑張るかヒープ増やすかを判断する基準値で、大きい値を設定した方が早めにヒープを増やすようです。 実際、 200 や 500 にすると大きくスコアが伸びました”
  • MySQL 5.6 でのレプリケーション遅延は危険 : DSAS開発者の部屋

    MySQL 5.6 の検証中に MySQL 5.5 とは違うタイプのレプリケーション遅延を見つけたので紹介します。 MySQL のレプリケーションのおさらい MySQL のレプリケーションは次のような仕組みで動作しています。 マスターの更新トランザクションが binlog を書く スレーブの I/O スレッドがマスターに接続し、 binlog を取得し、 relaylog を書く. マスター側はスレーブからの接続を受け付けると(dump スレッド)、指定された場所から最新までの binlog を転送する binlog が追記されるのを待ってさらにスレーブに送る スレーブのSQLスレッドが relaylog を再生する MySQL 5.5 でよくあったレプリケーション遅延 マスターは並列してトランザクションを処理して、最終的にコミットした順で反映されれば問題ないようになっています。 一方、ス

    MySQL 5.6 でのレプリケーション遅延は危険 : DSAS開発者の部屋
    lesamoureuses
    lesamoureuses 2014/07/23
    “この問題は MySQL 5.7.2 で、 dump スレッドが LOCK_log を取得しなくてもどこまで転送していいか分かるようになって改善されるそうです”
  • PHPのセッションIDは暗号論的に弱い乱数生成器を使っており、セッションハイジャックの危険性がある : DSAS開発者の部屋

    下記の文章は、PHPのセッションIDに対する攻撃についてFull Disclosure MLに2010年に投稿された文章を和訳したものです。訳者の意見としては、攻撃の成立条件は極めて厳しく、そこまで深刻度は高くないと考えています。 とはいえ、疑似乱数列への攻撃がどのように行われるのか、その可能性を示す文章は比較的珍しいもののように思います。暗号論的に安全な疑似乱数とは何か、なぜ必要なのかといった内容を間接的に教えてくれる面白い文章だと感じましたので、今回翻訳してみました。 (以下、原文の和訳です) 原文:http://seclists.org/fulldisclosure/2010/Mar/519 Advisory (c) 2010 Andreas Bogk <andreas () andreas org> Product:PHP Version:5.3.2 以降 脆弱性の種類:暗号論的な

    PHPのセッションIDは暗号論的に弱い乱数生成器を使っており、セッションハイジャックの危険性がある : DSAS開発者の部屋
    lesamoureuses
    lesamoureuses 2014/01/06
    “訳者の意見としては、攻撃の成立条件は極めて厳しく、そこまで深刻度は高くないと考えています”
  • ISUCON 3 予選参戦記 : DSAS開発者の部屋

    10/5 土曜日はISUCON 3 の予選一日目に参加していました。 KLab からは 2 チームが、「ぜかまし」は Go, 「真面目系社内ニート 」は PHP での参戦でした。 私は「ぜかまし」で、結果は2位で戦進出が決まりました。 その時のコードがこちらになります methane/isucon3-qual-go 振り返り まずは、 tmux に残っていたベンチマーク履歴をご覧ください 2013/10/05 17:33:46 Score: 2485.3 2013/10/05 17:35:08 Score: 2021.4 2013/10/05 17:36:24 Score: 1786.6 2013/10/05 17:43:33 Score: 13635.2 2013/10/05 17:46:20 Score: 13882.8 [OK] 結果を管理サーバに送信しました 2013/10/05

    ISUCON 3 予選参戦記 : DSAS開発者の部屋
    lesamoureuses
    lesamoureuses 2013/10/07
    “今回の反省点は、リクエスト処理中に外部プロセスを起動するという、どう考えても良くないアーキテクチャを、テスト失敗を恐れて後回しにしたことです。”
  • repcached-2.0リリースのお知らせと、超簡単なサンプルコード : DSAS開発者の部屋

    repcached-2.0(memcached-1.2.5ベース) をリリースしましたのでお知らせします。 http://lab.klab.org/modules/mediawiki/index.php/Repcached (日語) http://repcached.lab.klab.org/ (英語) 今回の目玉はマルチマスタ構成のサポートです。 以前のバージョンはマスタ/スレーブ構成だったので、必ずマスタへ書き込まなければいけませんでした。そのため、接続先のサーバがマスタなのかどうかをクライアントが判別しなければいけなかったり、keepalivedなどと併用するなどの工夫が必要でしたが、今回のバージョンではその必要がなくなります。両方のサーバに対してデータを書き込むことができるようになったので、かなり使いやすくなったと感じています。 repcachedはパフォーマンスを最重視している

    repcached-2.0リリースのお知らせと、超簡単なサンプルコード : DSAS開発者の部屋
  • SWFファイルフォーマットとライセンス(その2) : DSAS開発者の部屋

    少し前の話になりますが、とうとうFlex 3 SDKとAIR SDKが公開されました。既にお使いの方も多いかと思います。 さて、以前「SWFファイルフォーマットとライセンス」という記事を書いたのですが、Flex 3 SDKが公開されてどうなったかの続報をお伝えします。 まず、大きな変更として、オープンソースな部分が増えました。Flex 2 SDKのときはFlex FrameworkのみがMPL(Mozilla Public License)だったのですが、Flex 3 SDKになって、コンパイラ、デバッガ、SWFライブラリ等もMPLになりました。Adobe Open Source に Flex SDK プロジェクト があるので、詳しくはそちらをご覧下さい。「プロジェクトページなんてどうでも良い、早くソースを見せろ」という方は、Flex SDK のsvnリポジトリが <http://open

    SWFファイルフォーマットとライセンス(その2) : DSAS開発者の部屋
  • ユニバーサルトラックバックシステム : DSAS開発者の部屋

    今日のネタは,思いつきで作ったWebアプリです.どういうものか一言でというと,野良トラックバックを実現するシステムです. 通常,ある URL にトラックバックを送信したいと思っても,送信先のページがトラックバックを受け付ける仕組みを持っていなければ,送信できません.また,自分が管理するページでトラックバックを受け付けたいと思っても,CMS や Blog のシステムなどのような,トラックバック受信をする仕組みを持っていなければなりません. このシステムでは,任意の URL に対するトラックバックを受け入れるためのものです.例えば http://www.klab.org/ にはトラックバックを受信するようにはなっていませんが,このシステムを使えば,http://www.klab.org/ を対象にトラックバックを送信できます.もちろん送信したトラックバックが http://www.klab.o

    ユニバーサルトラックバックシステム : DSAS開発者の部屋
    lesamoureuses
    lesamoureuses 2008/02/29
    みんなが使えば使いたいってシステムだよなぁ
  • repcached 1.1をリリースしました+2.0のもくろみ : DSAS開発者の部屋

    repcached 1.1 (memcached-1.2.4ベース) を公開しました! 主な変更点は次の通りです。 memcached-1.2.4の新しいプロトコル (append, prepend, cas) に対応。 ただし、いまのところcas unique IDのレプリケーションには対応していないので、getsとcasの間にフェイルオーバが発生すると、casが失敗する可能性があります。 レプリケーション用のテストケースを同梱しました。prove t.repでテストを実行できます。 ダウンロードやインストール方法などの詳しい情報は、プロジェクトページをご覧くださいませ! http://lab.klab.org/modules/mediawiki/index.php/Repcached (日語) http://repcached.lab.klab.org/ (英語) そして2.0 1.

    repcached 1.1をリリースしました+2.0のもくろみ : DSAS開発者の部屋
  • 最近のmemcached界隈の賑わいについてのメモ : DSAS開発者の部屋

    repcachedの開発をしている関係で、昨年あたりからmemcached界隈のウォッチを強化しています。 昨日のエントリでもちょっと書いたんですが、なぜかここ最近、にわかにmemcached界隈が賑やかになってきている感があります。具体的には、memcached互換の実装がいろいろと現れたり、新しいクライアントライブラリが登場したりなど。 そんなわけで、最近わたしが気になっている、memcached関連のあのプロダクトやこのプロダクトをささっとまとめてみたいと思います。 クライアントライブラリ (C) libmemcached Brian Akerさんによる、C言語用のライブラリ。 既存のC言語用のライブラリである、libmemcacheとapr_memcacheに続く、第3のC言語用ライブラリです。 Consistent Hashingも実装しているようです。 いままでベンチマークプロ

    最近のmemcached界隈の賑わいについてのメモ : DSAS開発者の部屋
    lesamoureuses
    lesamoureuses 2008/02/12
    [Memcached::libmemcached][Cache::Memcached::libmemcached][まとめ][perl]
  • Ant とテキストエディタではじめる Android : DSAS開発者の部屋

    皆様、新年あけましておめでとうございます。今年もよろしくお願いいたします。 さて、The Open Handset Alliance が発表した Android SDK ですが、既に Eclipse + Eclipse Plugin を使用してお試しになられた方もいらっしゃるかと思 います。 私は通常の開発業務で Eclipse を使っているのですが、plugin を入れすぎたせ いか動作が重いので、もっと軽い環境で開発できたらと思ってました。という 訳で Emacsと か vi などのテキストエディタを使って Android のアプリケーション を開発できる方法をご紹介します。 今回ご紹介する方法は以下の環境で行いました。 Mac OS X 10.5 apache ant 1.7.0 Android SDK (android_sdk_darwin_m3-rc22a) java 1.5.0

    Ant とテキストエディタではじめる Android : DSAS開発者の部屋
  • ActionScript Debugger を公開します : DSAS開発者の部屋

    昨日のConverterにつづいて、Debuggerの方も公開します。お試し版のWebアプリも用意しましたので、ぜひ触ってみてください。 TECH-mobi2007まとめ 講演資料 デモ版Webアプリ 今のところ、このツールはまだ自分用で、自分の流儀以外で作られたFlashで当に動くのかは完全に未知数だったりします。試して上手く動かないFlash Liteアプリがあれば教えていただければ幸いです。今後も、AS Debuggerの中身などのFlash関連の技術ネタをこのBlogや弊社技術者サイトで公開していくつもりなので、ご期待下さい。 ちなみに、12/25のエントリで言及していた、OpenID採用サイトがこのActionScript Debuggerデモサイトです。最初は認証レスの完全公開型にするつもりだったのですが、版権物のアップロードなどのいたずらに対するカジュアルな対策として採用し

    ActionScript Debugger を公開します : DSAS開発者の部屋
  • DSAS開発者の部屋:Windows用フリーウェア「HttpLogger」を公開します

    2013-12-24: お知らせ ソフトウェアの所作がプログラム開発時の意図とは異なるケースをこの間に何件かご報告頂いています。ソフトウェアは公開以来ご好評を頂いており、最新の環境へ追従すべく可能な限りの保守を継続してきましたが、現時点では新たに調査・改訂を行う目処が立っておりません。そのため、大変残念ですがソフトウェアの公開を一時的に停止させて頂きます。ご利用者の皆様におかれましては何卒宜しくご理解・ご了承下さいますようお願い致します。 2012-11-15: お知らせ 以下の問題に対応したテスト版パッチモジュールを公開します。 HttpLogger を有効にした状態で Windows 8 (32bit / 64bit) 初出の Internet Explorer 10 を起動するとエラーが発生する。 この版には先日パッチを公開した「Firefox 12 以降での動作不良に関する修

    DSAS開発者の部屋:Windows用フリーウェア「HttpLogger」を公開します
    lesamoureuses
    lesamoureuses 2007/11/06
    履歴検索欲しかった。IE、Firefoxともにってのがいいな
  • DSAS開発者の部屋:特集記事『Linuxロードバランサ構築・運用ノウハウ』を公開します

    Linuxロードバランサ構築・運用ノウハウ』を公開します! これはWEB+DB PRESS Vol.37の特集記事としてDSASチームが執筆したもので、技術評論社様の許可を得て今回公開するはこびとなりました。 一口でいうと、「Linux+IPVS+keepalivedを使って、冗長構成(Active/Backup)のロードバランサを作るまで」の解説記事で、 サーバ負荷分散一般についてのはなし Linuxでロードバランサを作ってみる ロードバランサを冗長化 といった構成になっています。 みなさんがLinuxロードバランサを導入・構築・運用する際の一助になれば、DSASチームとしてもうれしい限りですので、是非、ご覧になってください! 第1章 サーバ負荷分散概論 特集のはじめに なぜサーバ負荷分散をするのか? サーバ負荷分散の実現方法 ロードバランサのいる構成 ロードバランサはなにを元に分散す

    DSAS開発者の部屋:特集記事『Linuxロードバランサ構築・運用ノウハウ』を公開します
    lesamoureuses
    lesamoureuses 2007/10/11
    これは役に立つなぁ。でもこれを実際に使わないとちゃんと読まないんだよなぁ。。
  • DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!

    MySQLのチューニングにおいて非常に重要となるメモリ(バッファ)関連のパラメータについて、 チューニングのポイント DSASのとあるDBサーバ(実メモリ4GB)の実際の設定値 をまとめてみます。 また、必要メモリの総量の計算や限界値を越えてないかチェックしてくれるスクリプトも紹介します。 是非、参考にしてみてください! まず最初に注意点を。 バッファには2つのタイプがあります。 グローバルバッファ スレッドバッファ グローバルバッファはmysqld全体でそのバッファが1つだけ確保されるもので、 これに対し、 スレッドバッファはスレッド(コネクション)ごとに確保されるものです。 チューニングの際にはグローバル/スレッドの違いを意識するようにしましょう。 なぜなら、スレッドバッファに多くのメモリを割り当てると、コネクションが増えたとたんにアッという間にメモリ不足になってしまうからです。 in

    DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!
    lesamoureuses
    lesamoureuses 2006/12/27
    残念ながらinnodbを使ってないんだよなぁ。それでもツールは使えそう。
  • 負荷分散環境でブラウザキャッシュが効かないときは - ETagの解説 - : DSAS開発者の部屋

    ETag とはなんぞやというと、Apache が返すレスポンスヘッダのひとつで、 HTTP/1.1 200 OK Date: Mon, 24 Jul 2006 06:18:07 GMT Server: Apache Last-Modified: Wed, 13 Apr 2005 21:48:55 GMT ETag: "3b-60273fc0" ←これ★ Accept-Ranges: bytes Content-Length: 59 Connection: close Content-Type: text/html オブジェクトに付与される属性です。 で、何に使うかというと、ブラウザのキャッシュ管理に使われます。 一度、http://example.jp/index.html にアクセスした後でもう一度(リロードとかで) アクセスすると、ブラウザは最初のリクエストのときに得た ETag の値

    負荷分散環境でブラウザキャッシュが効かないときは - ETagの解説 - : DSAS開発者の部屋
    lesamoureuses
    lesamoureuses 2006/09/13
    ETagの解説読みたかったんだ
  • DSAS開発者の部屋:サーバ管理者向け無精のすすめ 〜ちょっと便利なツールの紹介〜

    弊社のLinuxサーバ、ネットワークインフラのDSASの特徴のひとつに、100台近くある全てのサーバの内容が(数個の役割設定ファイルを除いて)同期されているという点があります。 これにより、 スケーラビリティ 予備機をサービス投入するだけで済むので、テレビCMなど突発的な高アクセス時にも迅速な対応が可能です。 増強が容易 サーバをラックマウントしたら適当なサーバからまるまんまコピーすればクラスタに参加可能です。まとまった台数の増強をする際に、いちいちCD-ROMからOSをインストールしていると日が暮れちゃいます。 役割の変更が容易 ディスクの内容が同じなので、もし、メールサーバが故障しても、適当なWebサーバの役割設定ファイルを変更して再起動するだけでメールサーバに早変わりできます。 メンテナンスが容易 ディスク上のファイルを更新した場合は、rsyncなどで全サーバに同期コピーすれば更新完

    DSAS開発者の部屋:サーバ管理者向け無精のすすめ 〜ちょっと便利なツールの紹介〜
    lesamoureuses
    lesamoureuses 2006/06/01
    サーバ間の同期を取って管理する
  • 1