中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

簡単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の認証周りのモジュー…

robocode・Melee&チーム戦

Melee戦 基本的には1vs1と変わらないが中央は明らかに不利なのでフィールド中心に大きな反重力点を置と効果的。 勝ち残って1vs1になったら解除すればよい。また処理量の問題で1vs1よりパターン解析の量を減らす。 チーム戦 チーム内の機体間では自由に通信が…

robocode・移動&回避

移動の基本 反重力移動 障害物や弾を避ける常套手法。近寄りたく無い座標に仮想反重力点を設定し距離に応じた斥力を受けるように移動する。この手法の優れた点は斥力は近寄れば強くなり離れれば弱まる点にある。別に現実重力をシミュレーションしたい訳では…

robocode・パターン予測

パターン射撃 この手の処理の常套手段は機械学習なのだが1tick内の処理時間制限(15ms)がある為難しい。よってより軽量な実装を考えなければならない。 パターン射撃モード 前述の通常射撃モードに加え2種のパターン射撃を考案した。 単純移動パターン 敵の…

robocode・索敵

索敵の基礎 Robocodeでは自機のレーダーを回転させ敵に当てなければ敵は見えない。また弾はレーダーでは捉えられない。 敵が見えなければ攻撃も防御も出来ないので実は最重要。が、、実は突き詰めると答えは一つで差が付かない出来なきゃ減点法の世界・・・ …

robocode基礎

今回かなり徹底的にやったので備忘録では勿体無いと思った。ちゃんとコンテンツに纏めようかと。。あくまで僕の視点から見た3週間のマジcodeですよ 関連ページ 索敵 砲塔&射撃 パターン予測 移動・回避 チーム戦 robocode基礎 機体の種類 役割 HP 特記事項…

robocode・砲塔&射撃

砲塔&射撃の基礎 砲塔回転と自機予測 案外軽視されがちな重要な要素がある。『狙いをつけて撃つ』は『砲塔を回して撃つ』という事砲塔を回すには最低1 tick必要。1 tick で自機も敵機も最大8dot移動する。その時には既に狙うべき角度は違う。微修正しように…

robocode

備忘録的なやつ 職場でrobocodeイベントがあったので参加してみました。 ルール 3機編成のチーム戦 3 ラウンドマッチ ちゃんと纏めてこちらに移動 しました。

mongo-hadoop & mahout でドキュメントのクラスタリング(関連付け)

Solrが結構困ったちゃん 全文検索エンジンSolrは便利なのだが、どうもAvailavilityに問題がある様に思う。いや、環境がPoorなのもあるのだけれども GCも、PV負荷も、Indexing関連処理も して無い時間帯なのにクエストが刺さる事が多々ある! 今までは色々な…

またまたmongo-php-driver問題

前回の困ったちゃんをまた直しました・・・また一言!mongo-php-driver はマトモに動かん!!いつの間にかmasterブランチにメモリリークが組み込まれてる!! → v1.2ブランチは無事なんだってこんなに頻繁にメモリリークをぶっ込むんだろうか?ったく・・・…

荒ぶるmongos様の解析

前回(荒ぶるmongos様)の続きとりあえずgrepレベルでサラっと構造を読んでみた。まだ追記します 一旦終わり! 解析途中経過 DBConnectionPool コイツが重要っぽい class DBConnectionPool : public PeriodicTask { : } PeriodicTask このクラスは毎分起動task…

荒ぶるmongos様

Sharding構成で苦しんだ時の状況 現在mongosのコードを解析中なので、状況だけ。 ごく一般的な利用方法だと思うのだけどShardingは取扱いに注意が必要。 システム構成 実際はMongoDBサーバも沢山あってShardingを構成しているのですが 今回の現象は1台でも…

Cockatoo近況

まとまった時間が取れたのでCockatooの機能追加をしました。 v1.0ブランチを切りました https://github.com/cockatoo-org/Cockatoo/tree/v1.0 ある程度互換性を無視して一気に進みます。 Beak高機能化 アプリ開発の簡易化(わざわざMongoDBなどを立てなくて…

I just came back to the Engineering-field !!!

とある事情によりココ3か月程技術から遠ざかっていました。コチラはなんとか目途が立ったので、また更新を再開します!今回は2011頃から手掛けている仕事の紹介です。 クラウド特化型、PHPフレームワークCockatoo インフォシークニュースの配信を行っている…

続・javascriptの循環参照オブジェクト

以前書いた記事の続き実際に使って行くと、色々至らぬ点が見えてきたので かなり本格的にリファクタリングする事にした。 Object crawler 使い方 string の値を全て拾って来る方法 var callback_object = function(){ } callback_object.prototype = { ret :…

Emacs便利Tips集

前回emacsの設定に触れたので、ついでに僕の使っている便利関数達を紹介してみる。 折り返し表示 Emacs は長い行はデフォルト折り返し表示ですが ソースコードの場合は、却って見難く成りがちです。僕は [Ctrl+c l] で切り替えてます。 ;; truncate line (de…

ruby-mod(emacs)をちょっと便利に・・・

Emacs Emacsには{}や()や[]の対応でジャンプする機能 forward-sexp backward-sexp などという関数があります。これらはソースコードを弄る時に重宝し、例えば以下の様な場合に便利に使えます。 java int foo ( int a ) { // ※ forward-sexp この関数の終わり…

最急降下法

一ヶ月ぶりに会社復帰してみたら、ひょんな手違いから『イントラ八分』されてしまった。暇で仕方ないので、後輩の教育に勤しんでみた。 最急降下法 最急降下法(wikipedia) 多数のパラメータセットの最適値を探索する手法。 局所解に当たる事も多いが、処理が…