サーバーサイドの画像編集処理でメモリ使用量を抑える方法
業務ではスーパーデリバリーの開発を担当しています。 今回は私がスーパーデリバリーの開発で関わったサーバーサイドにおける画像編集処理でメモリ不足を防ぐノウハウを共有したいと思います。スーパーデリバリーではユーザーが任意の画像をアップロードできる機能があるため、まれに想定以上の高解像度画像が処理されてサーバーが Out Of Memory エラーを発生させることがありました。 そこで私が任されたタ
業務ではスーパーデリバリーの開発を担当しています。 今回は私がスーパーデリバリーの開発で関わったサーバーサイドにおける画像編集処理でメモリ不足を防ぐノウハウを共有したいと思います。スーパーデリバリーではユーザーが任意の画像をアップロードできる機能があるため、まれに想定以上の高解像度画像が処理されてサーバーが Out Of Memory エラーを発生させることがありました。 そこで私が任されたタ
今回は社内で実施した勉強会をほぼそのままブログ記事にしています。 ITエンジニアたるものドキュメントを残したり勉強会を実施したり分かりやすい設計にリファクタリングしたりなど、日々 知見の伝達 を意識していると思います。主要な知見はたいていそれらの方法で満たせるのですが、しかし残念ながら中には画一的な方法では伝えにくいものもあったりします。 ところで伝統芸能や工芸の世界では技術の継承において 背
OpenAPI Specification(以下OpenAPI Spec)をAPI仕様書を設計するフォーマットに採用するとき この2つの選択肢があることはご存知でしょうか? コードからOpenAPI Specに準拠したスキーマファイルを生成するコードファースト API仕様書からコードを生成するスキーマファースト 私はAPI仕様書を設計するフォーマットを決めるとき、OpenAPI Specを
今回は MySQL のプライマリキーに UUID を採用する場合に起きるパフォーマンスの問題を仕組みから解説します。 MySQL(InnoDB) & UUID のパフォーマンスについては各所でさんざん議論・検証されていますが、論理的に解説した記事が少なかったり一部には誤解を招くようなものもあるため、しっかりと理由から理解するための情報として役立つことができればと思っています。 UUID
みなさん元気にシェルスクリプトを書いていますか? 今回は bash で任意のコマンドを非同期実行しつつ、その実行結果を手軽に受け取る方法を紹介します。 よく利用される bash の非同期実行は & をコマンドの最後に付けてバックグランドで実行する方法ですが、以下のような制限や面倒くささがありがちです。 実行結果として簡単に受け取れるのは終了ステータスだけ 実行結果を得たい場合は一時
今回は社内向けに用意していたOracleにおけるインデックスのキー圧縮(接頭辞圧縮)機能の利用ガイドラインに解説を加えて外部公開します。 この機能はインデックスのパフォーマンス改善に対して効果的な一方でガイドラインがないと適切な利用が難しくもあります。そういった場合はぜひこのガイドラインをそのまま活用していただけたらと思います。 また本稿はインデックス設計についても多分に触れているので、キー圧縮
みなさんはテストに使用するデータをどのように用意していますか? ラクーンが運営するSUPER DELIVERYはECサイトなので商品の画像がたくさん並んでいます。 リリース前のテストでは、それらの画像を当てはめて確認したくなるときがあります。 本番環境では商品の画像はストレージサーバに保存されており、NFSで各アプリケーションサーバにマウントされています。 しかし、テスト中に画像の追加や削除が
同部の松尾が主催した「Fabric + Serverspec 社内勉強会」に参加しました。 勉強会のゴールはFabricを使ってサーバに設定をし、正しく設定されたことをServerspecで確認する、ということです。 今回のハンズオン環境として、FabricとServerspecがインストールされたUbuntuのVMイメージが事前に配布されました。それをVMWare PlayerまたはVirt
弊社の運営するファッション・雑貨向けB2Bサイトスーパーデリバリー(以下 SUPER DELIVERY)にはブラウザからの普通のアクセスを逸脱した過度なHTTPリクエストがしばしばやってきます。大半は独自クローラーなどの悪意がある攻撃とは言えないものですがサイトに与える負荷は高く対応の必要がありました。 今回の記事では弊社で行ったDoS攻撃対策の顛末をお送りします。 記事の性質上、設定内容
7/1に弊社の 決済サービスPaid(ペイド) のサーバー群へ ログ集約の改善を目的として導入した fluentd(td-agent) の導入手順などをまとめてみました。 ログ集約を改善する動機 弊社ではこれまで(今も大部分は) cron + rsync を使い、週次バッチでWebサーバー上のログファイルをファイルサーバーへ転送することで一応の集約をさせてきました。 (集約というよりはバ
弊社は間もなく本社を移転するため、準備に追われていて忙しい日々です。 なにかと人手不足なので、一緒に働いてくれる方を募集中です! 前回の「格安サーバで作る ESXi+NFS(ZFS) の仮想マシン環境(2)」に引き続き、今回はいよいよ「仮想マシンホストサーバ」を構築し、仮想マシンを作ってベンチマークをとりたいと思います。 3回目になりますこのお題も、今回で最後です。張
暑い日が続きますが皆様いかがお過ごしでしょうか。 最近、週に2回ほど熱いお風呂につかるようにしたのですが、寝付きがとても良くなりました。 肩こりも取れますので、オフィスの冷房で肩こりが酷い方にもお勧めです! さて、早速ですが前回の「格安サーバで作る ESXi+NFS(ZFS) の仮想マシン環境(1)」の続きです。今回は実際の構築に入っていきましょう。 まずは「NFS外部