タグ

ブックマーク / blog.cybozu.io (28)

  • 遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木です。 先日、アプリケーションサーバーが応答を返さなくなるトラブルに遭遇しました。 今回はその時のトラブルの原因と対策の顛末についてお話しようと思います。 現象 アプリケーションサーバーが突如応答を返さなくなりました。 現象が発生したアプリケーションサーバーのスタックトレースを見ると、あるスレッドの先頭が上記のようになっていました。 "qtp258153142-514386" prio=10 tid=0x00007f40b8dbf000 nid=0x7b4e runnable [0x00007f415ccb0000] java.lang.Thread.State: RUNNABLE at java.util.regex.Pattern$Loop.match(Pattern.java:4692) at java.util.regex.Pattern$G

    遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ
    dann
    dann 2015/05/12
  • クラウドを支えるこれからの暗号技術 - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 私は先月のDevelopers Summit 2015で、「クラウドを支えるこれからの暗号技術」という講演をいたしました。そのとき、近いうちに詳細なテキストを公開する予定と申し上げました。その準備ができましたので報告いたします。 講演と同じタイトル『クラウドを支えるこれからの暗号技術』のpdfgithubから取得できます。 2015/6/21追記。このテキストが秀和システムから出版されました。 表題の講演は、主に2000年に入ってから登場した新しい暗号技術の紹介がメインです。そのときのプレゼン資料は3月の時点で4万5千ビューを超えていて、デブサミ資料の中でもかなり上位に入る閲覧数のようです。技術者の暗号に関する関心が高いことを伺わせます。 しかし一般向けの暗号のテキストは、公開鍵暗号の一つであるRSA暗号やElGamal暗号ぐらいしか詳しい原理が記されていな

    クラウドを支えるこれからの暗号技術 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • nginx の拡張モジュールを書いて DoS 対策をした - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。インフラチームの野島です。 最近、cybozu.com はロードバランサを Apache から nginx に置き換えました。 (参考: cybozu.com のリバースプロキシを nginx にリプレイス) 置き換えの一環として、Apache に実装していた DoS 対策の仕組みを nginx の拡張モジュールにする形で移植しました。今回、この拡張モジュール nginx-maxconn-module を OSS として公開しましたので紹介します。 背景 DoS 対策 秒間リクエスト数 v.s. 瞬間同時リクエスト数 実装方針 nginx-maxconn-module 基的な使い方 高度な使い方 インストール おわりに 背景 題に入る前に、cybozu.com において、HTTP リクエストがどのように処理されているかを説明します。 cybozu.com では、負荷分散のた

    nginx の拡張モジュールを書いて DoS 対策をした - Cybozu Inside Out | サイボウズエンジニアのブログ
    dann
    dann 2015/03/02
  • cybozu.com のラック設計 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。運用部の大野です。 今回はいつもと趣向が異なる物理インフラのお話。弊社 cybozu.com を運用するデータセンターで行った、ラック設計について一部紹介したいと思います。 そもそもラック設計って? ここでのラック設計とは要するに「運用性の高いラックを作るためのルール作り」のことです。 「ラックなんて冷やしてケーブル差せばいいんだろ」と思うかもしれませんね。 しかし!運用性の高いラックはシステムの安定稼働にとって重要なポイントです。 作業し易いのは勿論のこと、誤ってケーブルを抜いてしまうなどの人的な障害リスクを軽減しますし、万一の障害にも影響範囲を最小限に止めることが出来ます。 そして、その運用性の高いラックを作るためには事前の設計が重要になります。一度システムが稼働してしまうと物理的な移動は非常に困難になるからです。弊社がデータセンターを新設した際に行ったラック設計のポイン

    cybozu.com のラック設計 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • x86/x64最適化勉強会6 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちはサイボウズ・ラボの光成です。 今回は8月31日に開催された「x86/x64最適化勉強会6」の模様についてお伝えします。 今回の勉強会では、6月に発売された Haswell の新しい機能にかかわるものが3件、C++ によるゲーム開発の環境にかかわるもの、ARMと x86 の比較、Xeon Phi についてがそれぞれ1件ずつの発表でした。 以下、それぞれの発表内容について簡単に解説します。 Haswell 関係 私は「Haswellサーベイと有限体クラスの紹介」(動画1)を発表しました。前半は Haswell の復習として、パイプラインの改良点と、256bit 長に対応した整数演算命令 AVX2、積和演算を1命令で行う FMA、いくつかのビット演算命令や暗号用途の整数演算命令などについてサンプルコードを示しつつ紹介しました。gcc 4.8 などの新しいコンパイラでは、ソースコードを変

    x86/x64最適化勉強会6 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
    dann
    dann 2013/09/05
  • WalB v1.0 リリース - Cybozu Inside Out | サイボウズエンジニアのブログ

    更新情報 2017年6月現在、WalB のプロジェクトページはhttps://walb-linux.github.io/です。 こんにちは.サイボウズ・ラボの星野です. 今日は,効率的なバックアップと非同期レプリケーションを目的とした Linux カーネルドライバ WalB についての簡単な紹介と,そのバージョン 1.0 のリリース告知をさせて頂きます. WalB って何? WalB は「ワルビー」と発音します.名前の由来は Block-level WAL です.WAL は Write-Ahead Logging (ログ先行書き込み) のことで,データベースの一貫性制御等に用いられます. WalB を使うと,オンライン状態のブロックデバイスにおいて,アプリケーションやファイルシステムによるデータ書き込みによって生じる差分データを,ブロックデバイスをフルスキャンすることなく効率的に取得出来る

    WalB v1.0 リリース - Cybozu Inside Out | サイボウズエンジニアのブログ
  • cybozu.com の MQ と性能問題 - Cybozu Inside Out | サイボウズエンジニアのブログ

    いよいよ「サイボウズ・アドベントカレンダー2012」の始まりです。 記事一覧も作成しましたので、ご活用ください。 こんにちは。CyDE-C チームの青木です。 CyDE-C チームとは cybozu.com のミドルウェア層を担当するチームで、アプリケーション層のチームに MQ や全文検索サービス、BLOBサービス、Slash と呼ばれるユーザー管理機能を提供しています。 今回は CyDE-C が提供する MQ のパフォーマンスチューニングについて紹介します。 MQ とは Message Queue の略で、cybozu.com ではタスクの非同期実行の要として使われています。この仕組みはジョブキューやタスクキューとも呼ばれますが、この記事では MQ で統一することにします。 現行の MQ について cybozu.com の MQ は、キューに MySQL 、ワーカーは Java 製プログ

    cybozu.com の MQ と性能問題 - Cybozu Inside Out | サイボウズエンジニアのブログ
    dann
    dann 2012/12/09
    event
  • 数独の高速化 - Cybozu Inside Out | サイボウズエンジニアのブログ

    「サイボウズ・アドベントカレンダー」の4日目です(これまでの記事一覧)。どうやら三日坊主は免れたようです(笑)。 (0) はじめに こんにちは。サイボウズ・ラボの川合秀実です。私は主にサイボウズ製品の高速化のお手伝いをしています。しかし先日、製品とは関係ないものを高速化したので、今日はそれを発表します。 サイボウズには社内勉強会がいくつかあって、その中にはC++の勉強会もあります。私はサイボウズの勉強会に参加するのが好きなので、このC++の勉強会に参加してみました。この勉強会では、「数独」というパズルを解くプログラムをC++で書いてみよう、というのが最初のテーマでした。参加者各自がプログラムを書き、翌週にお互いにレビューしあうということが行われました。 ここで私はやらかしてしまいました。ええ、そうです、高速化してしまったのです! 言うまでもないですが、誰もこんなことは望んでいません。そもそ

    数独の高速化 - Cybozu Inside Out | サイボウズエンジニアのブログ
    dann
    dann 2012/12/07
    __forceinline