Ruby(rbenv)の設定方法
最近Railsの勉強を始めたので、勉強した内容を記載してみようと思います。 使うの以下のチュートリアルを使ってみる。
Ruby on Rails チュートリアル:実例を使って Rails を学ぼう
Railsを始める前にRubyをインストールする そのために、rbenvをいれる。
- まず環境設定方法
以下をクーロンする
$ cd $ git clone git://github.com/sstephenson/rbenv.git .rbenv
- bash_profileの設定
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ exec $SHELL $ source .bash_profile
$ mkdir -p ~/.rbenv/plugins $ cd ~/.rbenv/plugins $ git clone git://github.com/sstephenson/ruby-build.git
- Rubyのインストール
rbenv install 1.9.3-p194
これで環境の設定は完了!
Elasticsearchの集計機能について調べてみた
『サーバ/インフラエンジニア養成読本 ログ収集〜可視化編』 出版記念!執筆者が語る大講演会! で大谷さん(@johtani)がelasticsearchの集計機能について話していたので、少し調べてみた。
集計機能(aggregation)
Aggregations elasticsearchには検索だけでなく結果を多段で分析をすることができるらしい (残念ながらKibana3はサポート外)
Bucketing
(マニュアルの翻訳) * 集約されているドキュメントから何らかの形で抽出された値に基づいて、この家族のコンピュート·メトリクスにおける集計。 値は、典型的には、(フィールドデータを用いて)文書のフィールドから抽出されるが、スクリプトを使用して生成することができる。
mentrics
- バケット集計は集計が行うメトリクスなどの分野にわたってメトリックを計算しませんが、その代わりに、彼らは文書のバケットを作成します。 各バケットは、現在のコンテキスト内でドキュメントがその中に「落ちる」か否かを判断する(集約タイプに応じて)判定基準に関連している。 換言すれば、バケットは、効果的に文書セットを定義する。 バケット自身に加えて、 bucket集計は、各バケットに"に落ちた」との文書の数を計算して返します。
結構すごいなーと思った。使い方とかはもっと調べないといけないので、追記するかもでー
サーバから記憶媒体に通信するプロトコル
pyenvを入れてみた
仕事でpythonを使うことが増えてきたので、pyenvを入れてみた
pyenv
pyenvは、ローカルディレクトリ毎に のバージョンを指定できるツールです。
インストール
Mac
MacではHomebrewを使っていれるとマニュアルに書いてあったので、ためしてみたい
$ brew update $ brew install pyenv
が、、、、
$ brew install pyenv Error: pyenv-20140602 already installed To install this version, first `brew unlink pyenv' Warning: It appears you have MacPorts or Fink installed. Software installed with other package managers causes known problems for Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again.
そういえば、昔pyenv入れたの忘れてた。。。
ということで一度削除して再度入れ直すことにした
$ brew unlink pyenv Unlinking /usr/local/Cellar/pyenv/20140602... 0 symlinks removed
$ brew install pyenv ==> Downloading https://github.com/yyuu/pyenv/archive/v20140705.tar.gz ######################################################################## 100.0% ==> Caveats To enable shims and autocompletion add to your profile: if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi To use Homebrew's directories rather than ~/.pyenv add to your profile: export PYENV_ROOT=/usr/local/opt/pyenv ==> Summary 🍺 /usr/local/Cellar/pyenv/20140705: 287 files, 2.6M, built in 30 seconds
うまくいった
$ sudo yum install bzip2-devel $ pyenv local system $ pyenv rehash $ pyenv uninstall 2.7.6 $ pyenv install 2.7.6
2.7.6のセットアップが完了!
AWSにElasticsearchをインストールしてみた
AWSにElasticSearchをインストールしてみた AWSのOSはAmazon Linuxをつかってます
- RPMを取得してインストール
wget 'https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.2.noarch.rpm' sudo rpm -ivh ./elasticsearch-1.3.2.noarch.rpm
sudo /usr/share/elasticsearch/bin/plugin -install elasticsearch/elasticsearch-cloud-aws/2.3.0
- ElasticSearchを起動
sudo service elasticsearch restart
$ cat /var/log/elasticsearch/elasticsearch.log [2014-09-06 07:58:50,101][INFO ][node ] [Conan the Barbarian] version[1.3.2], pid[1777], build[dee175d/2014-08-13T14:29:30Z] [2014-09-06 07:58:50,101][INFO ][node ] [Conan the Barbarian] initializing ... [2014-09-06 07:58:50,113][INFO ][plugins ] [Conan the Barbarian] loaded [cloud-aws], sites [] [2014-09-06 07:58:52,901][INFO ][node ] [Conan the Barbarian] initialized [2014-09-06 07:58:52,901][INFO ][node ] [Conan the Barbarian] starting ... [2014-09-06 07:58:52,960][INFO ][transport ] [Conan the Barbarian] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/172.31.4.218:9300]} [2014-09-06 07:58:52,975][INFO ][discovery ] [Conan the Barbarian] elasticsearch/4LHaG6gdQEaLrT_RMkNXsA [2014-09-06 07:58:55,995][INFO ][cluster.service ] [Conan the Barbarian] new_master [Conan the Barbarian][4LHaG6gdQEaLrT_RMkNXsA][ip-172-31-4-218][inet[/172.31.4.218:9300]], reason: zen-disco-join (elected_as_master) [2014-09-06 07:58:56,022][INFO ][http ] [Conan the Barbarian] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/172.31.4.218:9200]} [2014-09-06 07:58:56,022][INFO ][node ] [Conan the Barbarian] started [2014-09-06 07:58:56,033][INFO ][gateway ] [Conan the Barbarian] recovered [0] indices into cluster_state
次回設定ファイルとかをいじって実際に検索できるようにしたい
ApacheのWorkerってなんだっけ?
最近Apacheの設定をいじる機会があったので備忘録用として記載する
ちなみにWorkerを調整した理由は、
- フロントエンドからたくさんのリクエストがとんできてサーバー側でさばききれなくなった。
- さばききれなくなったことで、サーバー側の処理がつまってしまったので、リクエストがさらにさばけなくなった。
apacheのworkerのデフォルト設定
<IfModule worker.c> StartServers 2 ServerLimit 3 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>
- StartServers: 起動時に生成される子サーバプロセスの数
- ServerLimit: 設定可能なサーバプロセス数の上限
- MaxClients: リクエストに応答するために作成されるスレッドの最大個数
- MinSpareThreads: アイドルスレッド数の最小個数
- MaxSpareThreads: アイドルスレッド数の最大個数
- ThreadsPerChild: 子プロセスそれぞれに生成されるスレッド数の上限
- MaxRequestsPerChild: 個々の子サーバが稼働中に扱うリクエスト数の上限
なにを変更するか?
色々調べたり教えてもらった結果
- レスポンスがきすぎた場合 、StartServers、(Min|Max)SpareServers, MaxClientsを小さくして、サーバー側にくるレスポンスを絞る
と効果がでた
また下記のページが色々役にたったので、この内容を勉強してまた書く
参考ページにしたページ
プロのサーバ管理者がApacheのStartServers, (Min|Max)SpareServers, MaxClientsを同じにする理由 - blog.nomadscafe.jp