タグ

ブックマーク / developer.cybozu.co.jp (13)

  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Docker で Selenium Grid の環境構築をもっと楽に! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、kintone チームの宮田です! 今回は、Selenium/Appium Advent Calendar 2014 15日目の記事として、Docker を使った Selenium Grid の環境構築方法について説明します。 背景 kintone チームでは、Selenium Grid を使用して Selenium テストを並列化しています。これまでは、VM で環境構築していたのですが、VM 数が増えてくるにつれてメンテナンスコストが上がってきたので、Docker による楽な環境構築方法をチームで探求していました。そこにいいタイミングで家の Docker イメージのリポジトリが作成されていたので、使ってみることにしました。 Docker のインストール OS は、Ubuntu 14.04 を使用します。 公式HPでは、docker.io パッケージのインストールと lxc-

    Docker で Selenium Grid の環境構築をもっと楽に! - Cybozu Inside Out | サイボウズエンジニアのブログ
    YuichiTanaka
    YuichiTanaka 2014/12/15
    kintoneで使ってるselenium gridをdockerで構築したよ!の記事。
  • Cybozu Hackathon 2014 発表会 - Cybozu Inside Out | サイボウズエンジニアのブログ

    12/3〜12/5で開催された「Cybozu Hackathon 2014 冬」の最終日の様子をご紹介します。初日のレポートはこちらです。 午前の部 最終日の午前中、会場のメンバーは最終調整中のようです。 Make部の参加者が基板をつないで動作をチェックしています。 何やら LED に表示されています。 こちらはモバイルアプリの動作確認中のようです。 モバイルアプリの動作確認中 ランチは皆で集まってとります。サイボウズ・ラボのメンバーや他のチームメンバーと情報交換する良い機会なのか、各テーブルとも様々な話題で盛り上がりました。 日はお弁当派が多いようです。 発表会! 発表会は東京、大阪、松山の各拠点を接続しての発表となったため、情報システム部のメンバーに発表資料や会場の映像共有システムを運用をお願いしました。チームができたこともあって、発表者は26組。それぞれ持ち時間は3分です。 一番手

    Cybozu Hackathon 2014 発表会 - Cybozu Inside Out | サイボウズエンジニアのブログ
    YuichiTanaka
    YuichiTanaka 2014/12/12
    弊社ハッカソンの成果発表会の様子
  • Cybozu Hackathon 2014 開催 - Cybozu Inside Out | サイボウズエンジニアのブログ

    昨年に引き続き、社内 Hackathon を12月3日から開催しています。 今回は開催準備から Hackathon 初日の様子をご紹介します。 準備は3月から 前回が大変好評だったこともあり、準備は今年の3月頃から kintone スペース上で少しずつ始まりました。 まずは前回参加者の感想を確認し、事前アンケートで次回についての意見を集めました。大半のチームから参加希望があり、年複数回の開催の声も数多く集まりました。 5月には業務を考慮しながら開催日が検討され、12月の開催が決まりました。 その間に研修の終わった新入社員が開発部門に配属され、新しく大阪開発部がグランフロント大阪に開設されるといった変化がありました。 開催が近くなると、KPT の振り返りで提案された「アイデア出しの事前イベント (Ideathon)の開催」の Try を進めました。 この Try では、kintone でアイ

    Cybozu Hackathon 2014 開催 - Cybozu Inside Out | サイボウズエンジニアのブログ
    YuichiTanaka
    YuichiTanaka 2014/12/04
    ちょうどいま社内ハッカソンやってる!
  • cybozu.com を真に常時 SSL にする話 - Cybozu Inside Out | サイボウズエンジニアのブログ

    @ymmt2005 こと山泰宇です。 今回は cybozu.com を安全に利用するために暗号化した通信(SSL)を常時使用するための取り組みを紹介します。 HTTP と HTTPS HSTS とその弱点 Preloaded HSTS Chrome のリストに cybozu.com を組み込む まとめ HTTP と HTTPS Web ブラウザのアドレスバーに "www.cybozu.com" と打ち込むと、通常は暗号化されない HTTP 通信が行われます。そこでまず考えられるのは、Web サーバーにて HTTP 通信を受け付けたら、HTTPS に永続的リダイレクトをすることです。Apache なら以下のような設定になるでしょう。 <VirtualHost *:80> ServerName www.cybozu.com Redirect permanent / https://www.c

    cybozu.com を真に常時 SSL にする話 - Cybozu Inside Out | サイボウズエンジニアのブログ
    YuichiTanaka
    YuichiTanaka 2013/10/04
    cybozu.comをpreloaded HSTSに対応してもらった話
  • Go のチュートリアルに足りないこと | Cybozu Inside Out | サイボウズエンジニアのブログ

    YuichiTanaka
    YuichiTanaka 2013/08/21
    GO!GOGO!!GOGOGO!!!
  • 失敗からはじめるSelenium - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。kintone 開発チームの長谷川&宮田です。 みなさんテスト書いてますかー? 品質の高い製品をリリースし続けるためにはテストを書くのは当たり前。でも実際にテストを書いたりメンテナンスをするのは大変なこと。特に、ユニットテストではなく Selenium のようなブラウザテストはコストが高く、運用が難しい面も。。 kintone チームでも Selenium を使って自動化試験を行なっています。 ここ1年ぐらいで随分テスト周りの仕組みが整備され、製品の品質向上に繋がっていることを実感していますが、 最初の頃は失敗も多く自動化試験としてはあまり機能していませんでした。今回はそんな kintone チームの自動化試験への取り組みの失敗とその改善について紹介したいと思います。 Selenium の失敗あるある 始めに昔の取り組み(失敗談)をいくつか簡単に紹介します。 テストの目的が曖昧

    失敗からはじめるSelenium - Cybozu Inside Out | サイボウズエンジニアのブログ
    YuichiTanaka
    YuichiTanaka 2013/08/20
    kintoneチームでのseleniumの取り組みまとめ。
  • データセンター移転とDRBD - Cybozu Inside Out | サイボウズエンジニアのブログ

    @ymmt2005 こと山泰宇です。今回は去る 5 月から 6 月にかけて行った、cybozu.com のデータセンター移転作業について、失敗してしまったことを中心に解説します。 失敗と書いたのは、移転作業中に何度か、一部のお客様環境でストレージ高負荷による障害を起こしてしまったためです。移転作業自体はスケジュール通り進行し、6 月第二週に完了しています。障害に関しては、こちら(PDF)でお詫びとご報告をしていますが、この記事では技術面ならびに障害を引き起こすにいたった背景について詳述します。 移転に至った背景 移転方式の検討 ストレージ同期の方法 DRBD による同期の詳細 まずは自社環境を移転、成功 そして障害は発生した なぜ障害につながったのか まとめ 移転に至った背景 まず、なぜデータセンターを移転することにしたかを説明します。 端的に言うと、当時のデータセンターが手狭になり拡張

    データセンター移転とDRBD - Cybozu Inside Out | サイボウズエンジニアのブログ
    YuichiTanaka
    YuichiTanaka 2013/07/23
    データセンター移転に伴う障害の詳細
  • Kazuho@Cybozu Labs: REST におけるトランザクションについて (Re: Web を支える技術)

    といいつつ、ひとつだけ理解できないというか、納得できないところが。トランザクションのところがなんだかRESTっぽくないのがすごく気になる Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)(山 陽平) - ただのにっき(2010-04-23) 「Web を支える技術」は自分もとてもいいだと思う (教科書としてすばらしいし復習用としても読みやすいのでイイ) のですが、トランザクションの所だけは分かりづらいなと感じました。その原因は、atomic transaction で解決できる課題を例として使っているという点と、トランザクションと更新クエリのレイヤ分割がされていない、という2つの点によるものではないでしょうか。 HTTP 上でトランザクションを表現する必要があるケースのほとんどは、atomic transaction ではなく

  • Cybozu Inside Out: ScaleBench 公開

    どーもみなさま。こんにちは。 amachang と申します。 さて、ようやく ScaleBench というプロダクトが発表されましたね! ScaleBench のご紹介 で、僕もこれの開発に携わっていたのでちょっと技術的なことについて書いてみたいと思います。 ScaleBench とは ScaleBench とは、サイボウズ製品向けの負荷テストツールで Grinder というオープンソースの負荷テストツールをベースにしています。 Grinder とは Java を使った Web の負荷テストツールです。 Jython でシナリオ(ユーザがどう行動するか)を書いてそれを実行します。 またブラウザの操作を記録して、シナリオを自動で生成することもできたりします。 で、僕がこのプロジェクトで担当していたのが Grinder の改良、改造 シナリオ(バーチャルユーザがどのような順で負荷をかけていくか

    Cybozu Inside Out: ScaleBench 公開
  • Kazuho@Cybozu Labs: Apache で X-Reproxy-URL ヘッダを使えるようにするモジュール mod_reproxy を書いた

    ウェブアプリケーションにおいて、認証がかかっている画像や大きなファイルを配信する場合には、Perlbal 等でサポートされている X-Reproxy-URL ヘッダが有効なことが知られていて、その理由としては、 (メモリを大いする) アプリケーションサーバのプロセスを転送終了まで占有しない HTTP ベースの分散ファイルシステムとリバースプロキシが直接交信するので、ネットワーク負荷が低い といった点が挙げられます。「でも、Apache は X-Reproxy-URL ヘッダをサポートしてないんだよねー」という話が、先日の YAPC::Asia 2009 においても話題になっていました[要出典]。回避策としては、ワンタイムURLのような手法もあるのですが、セキュリティな懸念もあります。 なんとかしたいなと思っていたのですが、気が向いたので、Apache に X-Reproxy-URL ヘッ

  • Cybozu Inside Out: SpiderMonkeyを使ってPHPでサーバーサイドJavaScript

    はじめまして。2009年に新卒で入社しました天野祐介です。amachang を期待された方はゴメンナサイ! 先日 SpiderMonkey を利用して PHP から JavaScript を実行する方法を調べる機会がありましたので、ご紹介します。 SpiderMonkey とは SpiderMonkey は  C で実装された Mozilla の JavaScript エンジンです。 これを PHP から実行する拡張を利用すると、 PHP コード内で JavaScript が実行できます。 SpiderMonkey extension のインストール こちらhttp://devzone.zend.com/article/4704に記載されている方法で CentOS にインストールしてみました。 PHP 5.3.0 以上が必要です。 $ wget http://ftp.mozilla.org

    Cybozu Inside Out: SpiderMonkeyを使ってPHPでサーバーサイドJavaScript
  • Kazuho@Cybozu Labs: パフォーマンスとスケーラビリティのためのデータベースアーキテクチャ (BPStudy#25発表資料)

    先週金曜日、BPStudy#25で、「パフォーマンスとスケーラビリティのためのデータベースアーキテクチャ」という題目で話をさせていただきました。その際に使用した発表資料は以下のとおりです。 1. Happy Optimization 最初に、最適化の考え方として、上限値を予測し、それを元にリソース配分を考える、という手法を説明しました。

  • 1