2011年11月12日土曜日
Linuxメモ その2
updatedb
ファイル名やコマンド名を格納した"slocate.db"というデータベースを作成する。
パスを度忘れした場合に便利。findだとデフォルトが配下の検索となり利便性にかける。
※ただし、findは検索にワイルドカードを利用できるため、状況に応じて使い分けること。
データベースは下記クーロン(パスは環境により異なる)により1日に1回定期的に更新されるが、マシンが常時起動中でないと正しく更新されないケースがあるため、新しく機能をインストールした場合は再度実行したほうがよい。
/etc/cron.daily/slocate.cron
尚、updatedbコマンドはサーバ内のすべてのファイルをチェックするため、サーバの容量が多くなればなるほど時間がかかるため、下記の通りバックグラウンドで実行するか、
updatedb &
インデックスする必要のないファイル・ディレクトリを除外するとよい。
updatedb -e "【除外するディレクトリ】"
updatedb -e "/tmp,/var/tmp,/usr/tmp"
locate
locate [filename or directoryname]
前述のデータベース生成後、指定したファイル名 or ディレクトリ名で検索する。
※もちろん、"find / -name [ファイル名]"でも全検索は可能だが、locateのほうが高速。
2011年11月1日火曜日
DeNA松信氏講演 MySQL MHA説明会(2011/09/13)
標題の通り、DeNAの「MySQLスペシャリスト Oracle ACE Director」の松信嘉範氏の講演を聞いた。
★オープンソースMySQL MHA(http://code.google.com/p/mysql-master-ha)について
・MHAはMobageの150系統を超えるマスター・スレーブペア環境に導入されている。
滅多にクラッシュすることはないが、OSやH/W障害で落ちる。
OSダウン検知は、ダウン検知に10秒、フェイルオーバーに4秒程かかる。
・IP切り替えは環境に依存するため外部スクリプトで提供している。
・スレーブのずれに関していえば、5.5の準同期レプリケーションを組み合わせれば、データ消失をほぼ防げる。
・その他、遅いトランザクションを発見するツール(slow-queryではなく)の紹介
★サービスの増強と縮退について
・ゲームタイトルの人気を正確に見積もることは困難
想定外の人気が出た場合はスレーブを追加し、水平分割によりマスターを追加する。
・ダウンタイムなしでマスタを切り替えるには、
1.更新を一時止める
2.マスターから既存スレーブにレプリケーション完了したことを確認する。
MHAではこれらを0.5~3.0秒で1クリックで行うことができる。かつ、データの不整合が起きたことは一度もなし。
松信氏は他にもこんなことを述べていた。
・オープンソース製品を使うことでコストダウンにつながり、結果会社に貢献することができる。
・技術を発信することはサービス企業の義務
勉強になります!
---------------------------------------------------------
松信 嘉範Yoshinori Matsunobu
MySQLスペシャリスト Oracle ACE Director
2006年から2010年8月まで、MySQL開発元のMySQLAB(現オラクル)にて、日本およびアジアのリード・コンサルタントとして従事。
100を超える国内外の顧客に対してMySQLパフォーマンスチューニング、高可用ソリューションなどを提供してきた。
2010年9月からDeNAにて「MySQLスペシャリスト Oracle ACE Director」。
主な著書に「Linux-DBシステム構築/運用入門」や「現場で使えるMySQL」などがある。
★オープンソースMySQL MHA(http://code.google.com/p/mysql-master-ha)について
・MHAはMobageの150系統を超えるマスター・スレーブペア環境に導入されている。
滅多にクラッシュすることはないが、OSやH/W障害で落ちる。
OSダウン検知は、ダウン検知に10秒、フェイルオーバーに4秒程かかる。
・IP切り替えは環境に依存するため外部スクリプトで提供している。
・スレーブのずれに関していえば、5.5の準同期レプリケーションを組み合わせれば、データ消失をほぼ防げる。
・その他、遅いトランザクションを発見するツール(slow-queryではなく)の紹介
★サービスの増強と縮退について
・ゲームタイトルの人気を正確に見積もることは困難
想定外の人気が出た場合はスレーブを追加し、水平分割によりマスターを追加する。
・ダウンタイムなしでマスタを切り替えるには、
1.更新を一時止める
2.マスターから既存スレーブにレプリケーション完了したことを確認する。
MHAではこれらを0.5~3.0秒で1クリックで行うことができる。かつ、データの不整合が起きたことは一度もなし。
松信氏は他にもこんなことを述べていた。
・オープンソース製品を使うことでコストダウンにつながり、結果会社に貢献することができる。
・技術を発信することはサービス企業の義務
勉強になります!
---------------------------------------------------------
松信 嘉範Yoshinori Matsunobu
MySQLスペシャリスト Oracle ACE Director
2006年から2010年8月まで、MySQL開発元のMySQLAB(現オラクル)にて、日本およびアジアのリード・コンサルタントとして従事。
100を超える国内外の顧客に対してMySQLパフォーマンスチューニング、高可用ソリューションなどを提供してきた。
2010年9月からDeNAにて「MySQLスペシャリスト Oracle ACE Director」。
主な著書に「Linux-DBシステム構築/運用入門」や「現場で使えるMySQL」などがある。
2011年9月14日水曜日
Linuxメモ その1
ps aux
ps はアクティブなプロセスのうち選択されたものの情報を表示する。
a
「自分自身のみ」というBSD形式の制約をなくす。
x
上記 a オプションと共に指定すると、全てのプロセスをリストする。
u
ユーザ指向のフォーマット。
把握しているユーザ名を指定して、利用ユーザのIDを確認するには
id [ユーザ名]
uid=[ユーザID](ユーザ名) gid=[グループID](ユーザ名) 所属グループ=[所属グループID](ユーザ名)
ps aux | grep java
Javaプロセスが生きているか調べる。
ps はアクティブなプロセスのうち選択されたものの情報を表示する。
a
「自分自身のみ」というBSD形式の制約をなくす。
x
上記 a オプションと共に指定すると、全てのプロセスをリストする。
u
ユーザ指向のフォーマット。
把握しているユーザ名を指定して、利用ユーザのIDを確認するには
id [ユーザ名]
uid=[ユーザID](ユーザ名) gid=[グループID](ユーザ名) 所属グループ=[所属グループID](ユーザ名)
ps aux | grep java
Javaプロセスが生きているか調べる。
ps auxで表示される内容
PID:プロセスID
%CPU:プロセスが使用しているCPU時間の割合
%MEM:プロセスが占めるメモリーの割合
VSZ:仮想メモリ上の使用量
RSS:実メモリ上の使用量
STAT:プロセサの状態(STATE)を表示
最初の1文字目が現在の状態
R:実行可能状態,S:スリープ状態,D:I/O待ち状態,Z:ゾンビ状態
%CPU:プロセスが使用しているCPU時間の割合
%MEM:プロセスが占めるメモリーの割合
VSZ:仮想メモリ上の使用量
RSS:実メモリ上の使用量
STAT:プロセサの状態(STATE)を表示
最初の1文字目が現在の状態
R:実行可能状態,S:スリープ状態,D:I/O待ち状態,Z:ゾンビ状態
2011年6月11日土曜日
Androidアプリ開発 〜環境構築〜
転職活動が収束を迎えつつあるので、
久しぶりにブログを更新できます。
今回は、下記記事を元にAndroidアプリ開発のための環境を構築していきます。
************************************
世界を目指せ!Androidアプリ開発入門
http://gihyo.jp/dev/serial/01/androidapp/0002
************************************
詳しくは上記サイトに沿っていけば環境設定できると思います。
Macで作業を行うにあたっては、
下記の通り、ターミナルから.bash profileファイルを作成し、
ファイル内にAndroid SDKのパスを指定します。
export PATH= $PATH:Developer/andrid-sdk/tools
エミュレータ起動するとこんな感じ。
次回から簡単なアプリ開発編です。
久しぶりにブログを更新できます。
今回は、下記記事を元にAndroidアプリ開発のための環境を構築していきます。
************************************
世界を目指せ!Androidアプリ開発入門
http://gihyo.jp/dev/serial/01/androidapp/0002
************************************
詳しくは上記サイトに沿っていけば環境設定できると思います。
Macで作業を行うにあたっては、
下記の通り、ターミナルから.bash profileファイルを作成し、
ファイル内にAndroid SDKのパスを指定します。
export PATH= $PATH:Developer/andrid-sdk/tools
エミュレータ起動するとこんな感じ。
次回から簡単なアプリ開発編です。
2011年5月5日木曜日
Flash Builder 4.5 導入(Mac OS X) 〜既存PJをインポート〜
Windows PCで個人的にFlex SDK 4.0によるアプリケーションを幾つか作成したため、
Mac PCにFlash Builderをインストールし、インポートしてみます。
WindowsとMacで幾つか配置場所も異なるため、その部分について記載していきます。
Aobe Flash Builderとは?
旧製品名はAdobe Flex Builderとも呼ばれ、ActionScriptとオープンソースのFlexフレームワークを利用して、
FlashによるWebアプリケーションやAIRによるデスクトップアプリケーションを構築するためのIDE(統合開発環境)です。
2011年4月現在の最新バージョン4.5(初期プレビューリリース)では、
Android、iOSなどのモバイルアプリケーションを構築できるようになりました。
1.Flash Builder 4.5 をダウンロードするために
今回は60日間無料で利用できる体験版にて開発を行います。
現在、仕事でFlash/AIRアプリケーションに携われる機会がないため、
少しでも仕事で使えるレベルに技術を高められるよう努めています。
2.Adobe IDの用意
Adobeのホームページからユーザー情報を登録します。
登録方法は他のWebページに載っていますし、特段難しいこともないのでここでは割愛します。
3.作成済のアプリをインポート
Flash BuilderのFlashパースペクティブを開き、
パッケージエクスプローラにて、ファイル→読み込みで、
インポートしたいFlash Builderプロジェクトを選択します。
4.AIRランタイムのバージョンを確認・app.xmlを編集
[PJ名]-app.xmlを編集
インポート元の環境で指定したバージョンと、
Flash Builderにバンドル済のAIRランタイムのバージョンの違いを確認します。
もし既存環境で動作したアプリがうまく実行できなければ、
下記テンプレート.xmlを参考に作成してください。
AIRランタイムのバージョン、PJ名等を書き換えます。
次回以降アプリケーションの紹介です。
Mac PCにFlash Builderをインストールし、インポートしてみます。
WindowsとMacで幾つか配置場所も異なるため、その部分について記載していきます。
Aobe Flash Builderとは?
旧製品名はAdobe Flex Builderとも呼ばれ、ActionScriptとオープンソースのFlexフレームワークを利用して、
FlashによるWebアプリケーションやAIRによるデスクトップアプリケーションを構築するためのIDE(統合開発環境)です。
2011年4月現在の最新バージョン4.5(初期プレビューリリース)では、
Android、iOSなどのモバイルアプリケーションを構築できるようになりました。
1.Flash Builder 4.5 をダウンロードするために
今回は60日間無料で利用できる体験版にて開発を行います。
現在、仕事でFlash/AIRアプリケーションに携われる機会がないため、
少しでも仕事で使えるレベルに技術を高められるよう努めています。
2.Adobe IDの用意
Adobeのホームページからユーザー情報を登録します。
登録方法は他のWebページに載っていますし、特段難しいこともないのでここでは割愛します。
3.作成済のアプリをインポート
Flash BuilderのFlashパースペクティブを開き、
パッケージエクスプローラにて、ファイル→読み込みで、
インポートしたいFlash Builderプロジェクトを選択します。
4.AIRランタイムのバージョンを確認・app.xmlを編集
[PJ名]-app.xmlを編集
インポート元の環境で指定したバージョンと、
Flash Builderにバンドル済のAIRランタイムのバージョンの違いを確認します。
もし既存環境で動作したアプリがうまく実行できなければ、
下記テンプレート.xmlを参考に作成してください。
AIRランタイムのバージョン、PJ名等を書き換えます。
次回以降アプリケーションの紹介です。
2011年5月2日月曜日
Vim 導入(Mac OS X) 〜その0:Vimの特徴・定義〜
Vimをインストールを行う予定だが、
なかなかのステップが待っているようなので、
複数回に分けて作業していく。
まず、Vimの定義(Wikiより)
Vim(ヴィム、ヴィアイエム)はviから派生し、発展した高機能なテキストエディタである。
そして下記のような特徴を持ちます。
・軽量
・コマンドモードと入力モードの切り分けに慣れていくほど編集効率がアップする。
・拡張性が高い
・主要プラットフォーム(Windows、Mac OS X、Linux、FreeBSD)にて動作する。
私がVimを利用しようという目的は、
CSS Niteに参加した際に面白法人カヤックの方が仰っていた通り、
何でもキーボードでやってしまい、開発スピードを上げたいためです。
さて、次回からいよいよ導入編です。
なかなかのステップが待っているようなので、
複数回に分けて作業していく。
まず、Vimの定義(Wikiより)
Vim(ヴィム、ヴィアイエム)はviから派生し、発展した高機能なテキストエディタである。
そして下記のような特徴を持ちます。
・軽量
・コマンドモードと入力モードの切り分けに慣れていくほど編集効率がアップする。
・拡張性が高い
・主要プラットフォーム(Windows、Mac OS X、Linux、FreeBSD)にて動作する。
私がVimを利用しようという目的は、
CSS Niteに参加した際に面白法人カヤックの方が仰っていた通り、
何でもキーボードでやってしまい、開発スピードを上げたいためです。
さて、次回からいよいよ導入編です。
2011年4月30日土曜日
HTML5 + jQuery でGoogle検索
ブログなどでよくみるGoogle検索ガジェットのようなもの。
このサンプルではGoogleサーバにホスティングされたjQueryを利用します。
jQuery他、Dojo、jQuery UIなどのJavascriptフレームワークを利用可能です。
メリットとしては、Googleサーバにて無期限にホストしてくれるため、
自身が用意したサーバに配置して、
都度バージョンを管理したりする必要がないのが強みですね!!
ソースコードはこちら。
このサンプルではGoogleサーバにホスティングされたjQueryを利用します。
jQuery他、Dojo、jQuery UIなどのJavascriptフレームワークを利用可能です。
メリットとしては、Googleサーバにて無期限にホストしてくれるため、
自身が用意したサーバに配置して、
都度バージョンを管理したりする必要がないのが強みですね!!
ソースコードはこちら。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 非同期通信サンプル Google Ajax Libraries APIを使用</title>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
<!--
// Google Search APIを利用(バージョンは1.0で問題なし)
google.load('search', '1');
// GoogleサーバにホスティングされたjQuery1.X.Xの最新版を自動的にロード
google.load('jquery', '1');
google.setOnLoadCallback(function() {
$(function() {
// SearchControlオブジェクトを生成
var sc = new google.search.SearchControl();
// Web検索サービスを設定。他にもローカル検索サービス、ブログ検索サービス、ビデオ検索サービスなど様々。
sc.addSearcher(new google.search.WebSearch());
// 検索結果をタブ表示
var drawOptions = new GdrawOptions();
drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED);
// SearchControlに格納された検索結果を描画
sc.draw($('#sc')[0], drawOptions);
// 検索実行
sc.execute("");
}); // end of jQuery
}); // end of setOnLoadCallback
// -->
</script>
</head>
<body>
<div id="sc">Loading...</div>
</body>
</html>
登録:
投稿 (Atom)