タグ

ブックマーク / blog.nekokak.org (6)

  • プロジェクト開発におけるテスト用DBの(使い|作り)方

    昔書いたような気がしてたけど書いてなかったので。 モジュールをつくっていてDB回りのテストを書きたい場合は Test::mysqldやTest::postgresql を使うこと。 CPANなんかに上げるモジュールではなく、お仕事プロジェクトのコードを書いていて DB回りのテストを書きたいケースについてです。 私はMySQLを利用しているので、Test::mysqldをつかってもよいのですが、 起動コストがそれなりにかかるのと、ローカルの開発環境には既にMySQLは立ち上がっている前提があるので、 既に立ち上がっているMySQLをそのまま利用する方法をとっています。 そこでテスト用のユーティリティクラスを紹介してみます。 package t::Utils; use strict; use warnings; use utf8; use lib './t/'; use Test::Fixtu

  • メモリ使用量の確認

    サーバのメモリが思った以上に消費していたのでサックリ調べてたのですが 各プロセスのメモリ使用状況の調べ方としては ps aux --sort=-rss | head -40とやるとRSSのサイズでソートしてくれるのでheadとかでみてやればメモリ使用量が多い順に参照可能。 ただたんにps auxしただけだと見るのがしんどい。 topでもshift+Mで同じ感じでみれるのでそれでも良い。 (cを入力してプロセスの詳細を表示するとなおよい) あとはCoWに乗ってるかを調べたが、 http://d.hatena.ne.jp/naoya/20080212/1202830671 naoyaさんが紹介されている方法そのまんまでよいでしょう。 sudoして実行すること。 Cowはアプリの質にもよるが基的にはライブラリが共有メモリに乗ってればいいから アプリの質をみつつsharedなパーセントを調整出

  • App::MadEye

    App::MadEyeとはPerlでかかれた監視フレームワークである。 基ドキュメントを見ても一切使い方がわからないであろう このモジュールをちょっと解説してみる。 ちなみにYAPC::Asia 2010の省サーバ運用の発表の際、 「監視とかどうしてますか?」 という質問があったが、私はこのApp::MadEyeを使っている。 使用理由としては、基的に監視したいと思う項目が網羅されている事、 使ったことがあること、nagiosとかめんどくさそう(使ったこと無いだけです) ということ、そして最大の理由はそれがPerlで書かれていることであろう。 早速解説というか使い方 App::MadEyeを起動するスクリプトを用意する。 今回は指定のサーバにpingを打ってみる例である。 #! /usr/bin/perl use strict; use warnings; use App::MadEy

  • MySQLで多段slave

    いまデータベースサーバを物理的に交換する必要が発生してしまい メンテナンス準備をしています。 現在の構成としては db1.local(master) db2.local(slave) という構成なのですが、なるべくダウンタイムを短くしたいのが世の常でしょう。 そこで稼働中のサーバを止めずに準備をします。 目指す最終型はこんなの db1.local(master) db2.local(db1.localのslave) db3.local(db1.localのslave & master) db4.local(db3.localのslave) こんな構成にしておけば一瞬メンテナンス画面にして、DBへのアクセスを遮断 db3.localのslaveがmasterに追いついた時点でアプリケーションのDB接続先をdb3.localにして 運用という形にできるかなと。 メンテ中にファイルコピーとか

  • blog.nekokak.org

    {NDA}というところから、{NDA}.cgiというファイルを渡されました。 このcgiファイルをwebでアクセスできるところに置いてね! っと言われたわけですが、このcgiはcかなんかでかかれており、バイナリファイルでした。 まぁ、それはいいんですが、普段apacheとか使ってないし、これだけの為にapache立ち上げるワケにはいかないので何とかした時のお話。 まぁ、なんてことはないんですが use strict; use warnings; use CGI::Emulate::PSGI; use Plack::Builder; my $app = CGI::Emulate::PSGI->handler(sub { system('./NDA.cgi'); }); builder { enable 'Plack::Middleware::ReverseProxy'; $app; };

  • blog.nekokak.org

    知ってる人は知ってるんでしょうけど、 MySQLを使ったライブラリとか作ってると テスト用のデータが欲しくなる時があります。 そこで登場するのがsakilaというサンプルデータ。 http://dev.mysql.com/doc/sakila/en/sakila.html このデータを読み込むだけで色々なケースの サンプルデータを利用することができます。 viewだったりトリガーだったり。 http://downloads.mysql.com/docs/sakila-db.tar.gz ココからダウンロードして展開してお使いのMySQLに入れるとよいでしょうのこと。

  • 1