Home > photoshare Archive
photoshare Archive
EventMachineの速度が安定しない[解決]
- 2008-12-27 (Sat)
- photoshare
Photo by the_amanda
PhotoShareをRailsから、EventMachineベースの自作フレームワークに全面書き換えをしているのですが、大体作り終わりベンチマークを取っていると、概ね1msで処理しているのに、時々、数百ms掛かることがありました。
初めはGCとか疑ったんですが、GC.disable実行しても状況変わらず。絞り込みをしていると、どうもEventMachineで詰まって居るっぽい。
EC2上で動かしていたので、手元のマシンで試したり、LinuxじゃなくてFreeBSDで試しても同じように詰まる。同じEventMachineを使っているThinを使って、ベンチマーク取ってみても、100回に1回ぐらい、やたらレスポンスが遅い時間があるのを確認できました。
ApacheBenchやhttperfは、平均値は取れるけど、個別のレスポンスタイムを出力する方法が見つからなかったので、JMeterに初挑戦。HTTPだけじゃなくて、いろいろなプロトコルに対応しているのがいいね。
色々試してみると、HTTPに限らずTCPソケットサーバを作ると発生するらしく、こんなコードでも、1000回に1,2回、接続した後1000ms近く待たされることがあることが分かりました。
MLとか探しても、同じような現象の話が出てきていない・・・。探し方が悪いのか、じつは誰もあまりまじめに使ってないのか・・・・。
ここら辺まで原因がつかめたところで、takiuchi先生にご相談。
結局カーネルまで追って、変にselectを呼び出して居ることが判明。takiuchi先生さすが! 自分もカーネルとか追うように色々準備しておかないと駄目だなと反省。
このコードを元に検索してみると、迷ったりしていることは分かったけど、このパッチを当てると、接続が詰まる状況が改善。
ここ以外にも、微妙なコードが見られるので、引き続きコードを追ってみよう。
年末の忙しい時期なのに、手伝ってくれてありがとうございました!>takiuchi先生
Webでの非同期処理を考えてみる [長い記事だけどコメント求む!]
- 2008-09-23 (Tue)
- iphone | photoshare | Ruby on Rails
Photo by harry harris
いまPhotoShareのサーバの実装を大きく変えようとして悩んでいます。 (参考: Life is beautiful: マルチスレッド・プログラミングの落とし穴、その2)
Rails 2.2でThread safeになるとか、NeverBlockで12倍速くなるっていう話もあるんだけど、負荷が上がればレスポンスが悪くなるのは、どうしようもない。マシンを増やせば解決できる部分もあるけど、マシンを増やせばコストは上がる。
Life is beautifulで書かれていますが、確かに全部の処理を同期的に行う必要はないんですよね。
PhotoShareでも、既にいくつかのページは非同期にerbを生成して、それをRailsとerubisで読み込んで実行しています。
しかし、Railsだけではこういった非同期の処理やviewの一部を事前に生成するという処理ができないので、この処理は別途プラグインを作って実現しています。
高速化の為にはキャッシュを使おう
Railsで高速化を考えていくと、特にキャッシュが重要になります。たとえばブログエンジンで、RSS Feedを生成するアクションがあったとします。
PhotoShareで新しいiPhoneにデータを移行する方法
- 2008-08-15 (Fri)
- photoshare
Photo by Miss Indi Pop
PhotoShareは誰でも簡単に使えることに力点を置いているので、ユーザ登録なしで利用できる、というのを特徴にしています。
しかし、新しいiPhoneを買った場合など、PhotoShareで新しいiPhoneにデータを移行したい場合、通常のサービスであれば、アカウントを入力するのですが、PhotoShareではアカウントがありません。
そこで、PhotoShareでは、登録したメールアドレスによってデータの移行ができる様になっています。
- 旧iPhone: メールアドレスを登録する (メールアドレスの登録は、トップメニューの「設定」から行えます。
) - 旧iPhone: PhotoShareを削除する
- 新iPhone: PhotoShareをインストールする
- 新iPhone: 旧iPhoneと同じメールアドレスを登録する
iPod touchからiPhoneに移行する場合は、「旧iPhone」を「iPod touch」に読み替えてください。
これで旧iPhoneから情報が削除されたので、旧iPhoneにPhotoShareをインストールすると、また新しいアカウントとして使うことができます。
PhotoShareでは端末IDを元にしているので、修理などで端末が交換された場合にも、アップした写真などが見えなくなってしまうことがあります。その場合にも、メールアドレスを登録することで前の情報が新しいiPhoneにも引き継がれます。
データの移行には、メールアドレスの登録が必須になりますので、なるべく登録するようにしてもらえると助かります。
旧iPhoneでは、データ移行後、アプリを一度削除すれば、すべての情報は削除されますので、譲渡などを行ってもPhotoShareの情報が渡ることはありません。
BigCanvas PhotoShareリリース!
- 2008-07-10 (Thu)
- photoshare
中島さんと立ち上げた、Big Canvasのファーストプロダクト、Big Canvas PhotoShare (www.bcphotoshare.com)をリリースしました。AppStoreでのダウンロードは、こちらから。
このアプリケーションは、何よりも手軽に写真を使ったコミュニケーションが出来ることを目指したアプリです。
煩雑なユーザ登録などせずに、写真をサーバへアップロードし、友人や家族と共有できます。誰かを指定して写メするのと違い、自分の日常を流していくTwitterのようなユルいコミュニケーションを目指してます。
すでに取った写真をアップロードしたい場合には、右下の四角のアイコンを、その場で写真を撮りたい場合はその隣の、カメラのアイコンをクリックします。写真をアップロードするときには、「非公開」「家族と共有」「友人と共有」「全員に公開」を選んでください。
「友達と共有」とした写真を友達に見せたい場合は、メインメニューを下にずらし、「友人」や「家族」を選択し、「招待する」をクリックします。これで、メールの作成画面に移りますので、そのメールを友達に送りましょう。
招待された人が、iPhoneを持っていない場合は、Webでも写真を見ることができます。
iPhoneのアプリの日本語化はされていますが、まだWeb側の方は英語版のみになっています。Webの日本語版は近日中にリリースします。
また、この週末は過負荷により、サーバとの通信が重い可能性があります。チューニングやサーバ強化は順次行っていきますので、ゆっくり楽しんでください。
WordPressに乗り換えました
- 2007-01-30 (Tue)
- photoshare | Ruby on Rails
最近、あまりにSpamがひどいので、ブログをWordPressに乗り換えました。
Typoだとアンチスパムが弱かったり、コメントを消す動作が結構めんどうだったので、さっくりと乗り換えることに。
なお、過去のコンテンツは、そのまま残してあります。
前のトップページは、ここにありますので、古い情報を探しに来た方はそちらからどうぞ。
Home > photoshare Archive