中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

2013-01-01から1年間の記事一覧

Analyze the Analyzer (MongoDB 2.4)

Analyzer problem ? MongoDB Analyzer sometimes retuns below values that is difficult to interpret. RS:PRIMARY> db.serverStatus().mem { "bits" : 64, "resident" : 127, "virtual" : 11292, "supported" : true, "mapped" : 5262, "mappedWithJournal…

MongoDB 2.4 Analyzerをアナライズした!

前回のエントリーで釈然としなかったAnalyzerの戻す値が信用出来ない件。 このままじゃ、安心して使えないので解析した。 MongoDB analyzer 問題 db.serverStatus().mem.resident mongodプロセスが利用している物理メモリサイズ db.serverStatus({workingSet…

MongoDB 2.4 の新クエリーcapped arrayを試した

capped arrayの機能と性能を検証をした。 結論 capped arrayでは配列数が多い場合、明らかにsortが性能劣化する。 (使い難いが)sortを使わない場合は殆ど気にしなくて良いレベルになる。 LRUキャッシュに使うにはちょっと厳しいかもしれない。。 capped ar…

MongoDB 2.4 の新クエリー$setOnInsertを試した

$setOnInsertの機能と性能を検証をした。 結論 $setOnInsertには副作用は無さそう。積極的に使っていきたい。 $setOnInsertの機能 upsertと組み合わせて使う。 upsert レコードが無かった場合はinsertとして働き既にレコードがあった場合はupdateとして働く…

MongoDB2.4新機能 Working Set Analyzer

Working Set Analyzer MongoDB2.4からはサーバリソースの管理・評価にAnalyzerが使えるようになりました。利用方法は既存のコマンドdb.serverStatus()を叩くだけです。 マニュアル 翻訳 workingSet New in version 2.4. Example:output of the workingSet fi…

Scheme design in MongoDB.

非常に参考になるMongoDBのノウハウ集を和訳(&少々所感)しました。内容はデータベースの基本に忠実です。 データサイズを圧縮し、レコードの移動を防ぎ、効率の良いクエリーを発行しろという事です。 突飛な手法では無いので理解し易い。 One of things t…

MongoDB 2.4 認証周り

以前、盛大にハマったので、備忘録です。 コアサーバ keyFileオプションの扱い(2.2から変わったかもしれない。。。) keyFileオプションを指定すると、authオプションも指定された事になる。 つまりkeyFileオプションはレプリカセット・ノード間の認証と、…

MongoDB で isExist

MongoDBでドキュメントがあるか無いか?を調べたい時 原文 Checking if a document exists -- MongoDB slow findOne vs find 参考になったので和訳した One of the biggest optimisations to make MongoDB writes faster is to avoid moving documents by do…

MongoDB2.4 リリース(和訳)

MongoDB 2.4 released を和訳(&少々所感)しました。 和訳 The MongoDB Engineering Team is pleased to announce the release of MongoDB 2.4. This is the latest stable release, following the September 2012 release of MongoDB 2.2. This release c…

時系列データとMongoDB2.4の新機能Hash based sharding

実は数年前(MongoDB 1.6〜1.8の時期)にログをリアルタイムに全てmongodbに叩き込んで期間毎に解析する仕組みを作ろうとして挫折した事がある。理由は幾つかあったのだが主に cappadコレクションでは解析時の負荷とログ投入負荷が重なってしまう。 → 最終的…

MongoDB sharding 関連コマンド

Sharding関連の主要操作 勉強ついでに本家のマニュアルを翻訳しておいた。 が、、3、4日経っても反映されないのな。。。 多分ドキュメントオーナーがサボってて承認してないんだろう。 その内反映されるだろうからいいや。。 バランサーを開始 sh.startBal…

MongoDBのデータファイル同期について

MongoDBのストレージエンジン ココで触れた通り MongoDBは書き込みリクエストを受け付けると、一旦、内部キューにデータを積み、 バックグラウンドスレッド(journal)によって、journalファイルとデータファイルのmmap領域に書き込まれる。 その後、更にバッ…

簡単SNMP(監視カスタマイズ編)

SNMPで誤解してた部分を勉強し直したついでに纏めてみた。前回の続き net-snmp の監視項目をカスタマイズする方法 主に3通りの方法がある。 /etc/snmp/snmpd.conf exec コマンド net-snmpに任意のコマンドを登録する。 /etc/snmp/snmpd.conf # exec コマン…

簡単SNMP(ACL設定 v3編)

SNMPで誤解してた部分を勉強し直したついでに纏めてみた。前回の続き v3 ユーザを作る作業が面倒でメゲそうになるが、、他に選択支が無いのでやるしかない。 ユーザ作成時に暗号化用のトークンも指定してしまう所がポイント コミュニティー名 使わない。 com…

簡単SNMP(ACL設定 v1,v2c編)

SNMPで誤解してた部分を勉強し直したついでに纏めてみた。前回の続き セキュリティー設定 v1 , v2c と v3 で大きく方法が異なる。 v1,v2c OID 接続元IP コミュニティー名 でACL制御する。 事実上、コミュニティー名しか守る要素が無い上に、これらは平文でや…

簡単SNMP(環境構築編)

SNMPで誤解してた部分を勉強し直したついでに纏めてみた。前回(概要編)の続き今回は環境構築編。 設定ファイルが結構クセモノなので次回に持ち越す予定 net-snmp ( on centos6.2 x86_64 ) インストール 本体 簡単。 # yum install net-snmp ツール(SNMPク…

簡単SNMP(概要編)

SNMPで誤解してた部分を勉強し直したついでに纏めてみた。 SNMP(Simple Network Management Protocol) ご存じの通りコンピュータが健全に動作しているか否かをネットワーク越しに監視する仕組みインフラエンジニアならば必ず使った事がある程身近な仕組みな…

Mongo ghost sync & slaveDelay

I updated the previous slide that was added slaveDelay and its (serious) probrem !! Ghost sync & slaveDelay 前回のスライドをアップデートして、slaveDelayとその問題を追記しました。 概要 Ghost sync MongoDB replica set のnode間のネットワーク障…

Ghost sync

Ghost sync MongoDBのレプリカセットではデータの書き込みは常にPrimaryに行わる。 各Secondary(slave)は『基本』Primaryから同期する。 ただし、色々な理由でPrimaryから同期出来ない場合は別のSecondaryから同期をする事がある。 なんでこんな事するのか?…

Mongo threads 日本語版

この記事はmongoのソースを読み解きたい人向けです。 それ以外の人には多分有意な情報は無いかと。。また私自身がコードリーディングした時に書き散らしたメモを纏めただけなので 精確じゃなかったり諦めたりした部分もありますので、ご了承ください。 スタ…

Mongo threads

This article is for the man who try to read the source code.I have to make a lot of memos when I read the large percent of the source code.This is the summary of it. Startup sequence Threads Thread name will appear in the log. For instance…

クライアント接続時のmongod (シーケンス)

クライアント接続時の挙動 シーケンス図、第2弾mongodはクライアント毎に1本のスレッドを立てる。この辺りのコードはアッチコッチに飛びまくるので追い難い。 ASIOは昔からビルドすら通らないので無視無視・・・ 最近やっとNOT READY YETって書かれた(苦笑)…

c++11 thread on g++ and linux

C++

Check your g++ $ g++ -v Using built-in specs. Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --…

mongodのスレッド構成

最近mongodを解析してるのだけど超複雑なのでテキストメモじゃ駄目だーなので、理解できるまで少しずつ図にしていくつもり手始めにReplicaSetモードのmongodのスタートアップシーケンス。(master/slave等は除外)各スレッドの役割や動作などはこれから解析。…

limits.confの話

/etc/security/limits.conf プロセスが利用できるリソースを制限する奴。特にデーモンプロセス(mysqlとか)の利用可能ファイル数などをチューニングする時に使うのだけどlimits.conf が反映されない! というトラブルが多い。 PAM linuxの認証周りのモジュー…