東京Node学園祭2012
![Nodeコアの歩き方 ~Nodeの開発に参加しよう~ [Node.js]](https://cdn-ak-scissors.b.st-hatena.com/image/square/7dc90afed20fc94ba0a2959f08e0a295b5041482/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F956bf01012da0130f91e12313d142636%2Fslide_0.jpg%3F780973)
5. NFS の性能を最適化するクライアントとサーバの両面から、環境を注意深く分析することが、 NFS の性能を最適化する際の最初のステップになります。 前半のセクションでは、一般にクライアントの方で重要になる点を扱います。 後半 (Section 5.3 以降) では、サーバ側の点を議論します。 サーバ・クライアント両側での項目は、 互いに影響を及ぼしあうことがないわけではありませんが、 原因・結果をはっきりさせるためには、この 2 つを分けておくと便利かと思います。 十分なネットワーク容量、高速な NIC、全二重の設定にして衝突を減らす、 スイッチやハブでネットワークスピードを一致させる、 といったようなネットワーク関連の設定を除くと、 クライアントを最適化するために最も重要な設定は、 NFS データ転送のバッファサイズでしょう。 これは mount コマンドの rsize, wsiz
概要 ↓ memcachedのtcp_backlogのデフォルト値は1024で、stats settingsにも1024と表示されているのですが、 stats settings ... STAT tcp_backlog 1024 ... END↓ net.core.somaxconnがデフォルト値のままだと128に切り詰められてしまい、 # cat /proc/sys/net/core/somaxconn 128負荷が高いサーバーでは接続要求を取りこぼしてしまうことがあるそうです。 このnet.core.somaxconn、MemcacheやMySQLなど、高負荷時に多くの接続要求を受け付けるサーバーではチューニングが必要なカーネルパラメータのようです。いったいどういう値なのか、調べてみました。 net.core.somaxconnとは TCPソケットはlisten()関数の第二引数 ba
# portmap が稼動していなければ、起動 [root@linux ~]# service portmap start portmap を起動中: [ OK ] # nfslock が稼動していなければ、起動 [root@linux ~]# service nfslock start nfslock を起動中: [ OK ] # nfs を起動 [root@linux ~]# service nfs start NFS サービスを起動中: [ OK ] NFS クォータを起動中: [ OK ] NFS デーモンを起動中: [ OK ] NFS mountd を起動中: [ OK ] RPC idmapd を起動中: [ OK ] # portmap の自動起動設定 [root@linux ~]# chkconfig portmap on [root@linux ~]# chkconfi
世間では PHP が、Perl が、と盛り上がっているようですが空気を読まずまたカーネルの話です。今回はページキャッシュについて。 /dev/shm に参照系DBを持っていくと I/O 負荷が激減した件(当たり前だけど) - drk7jp で、ディスク上にあったファイルを /dev/shm (tmpfs) に移したら I/O 待ちがなくなって負荷がさがった、ということなんですがおそらくこれは tmpfs に置く必要はないかなと思います。Linux (に限らず他の OS もそうですが) にはディスクの内容を一度読んだらそれはカーネルがキャッシュして、二度目以降はメモリから読む機構 = ページキャッシュがあります。tmpfs にデータを載せることができた、ということは物理メモリの容量に収まるだけのデータサイズかと思うので、放っておけば該当のファイルの内容すべてがメモリ上にキャッシュされて io
調べごとをしたので blog に書いて理解を深めようのコーナーです。長文です。 Linux でシステム負荷を見る場合にお世話になるのが top や sar (sysstat パッケージに同梱されてるコマンド) などのツールです。 top ではシステム統計のスナップショットを見ることができます。今システムがどういう状態かなーというときは top が便利。 top - 08:16:54 up 3 days, 14:43, 6 users, load average: 0.18, 0.07, 0.03 Tasks: 43 total, 2 running, 41 sleeping, 0 stopped, 0 zombie Cpu(s): 18.2% us, 0.0% sy, 0.0% ni, 81.8% id, 0.0% wa, 0.0% hi, 0.0% si一方の sar では10分ごとのシ
はじめに アクセスが急増すると、応答時間が著しく悪化するサイトはありませんか? 普段は200ミリ秒以内で安定してアクセスをさばいているのに、イベントやらキャンペーンやらを開始した瞬間から、普段の2倍や3倍のアクセスが殺到し、その結果、レスポンスタイムが3秒とか9秒とかかかるようになってしまうことってありますよね。 あるサイトの実状 つい先日まで、そんなサイトが私の目の前にもありました。自社で運営している某ソーシャル系のサイトなんですが、イベント開始時刻と同時にアクセス数が急増するのです。とはいえ、所詮は普段の2倍とか3倍程度の数なのだから、少なくとも1秒以内にレスポンスを返せるくらいの性能は維持したいものです。 しかし実際は困ったことに、応答に3秒以上もかかってしまう処理が大量に発生してしまう状況に陥ってしまっていました。これはきっと、どこかにボトルネックがあるに違いありません。 仮説を立
和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 東京 Ruby 会議 03 の RSpec ワークショップの資料です。このワークショップでは参加者の方に「写経」(コードを書き写すこと)をして貰い、TDD/BDD と RSpec を同時に学べるように都度説明を入れるかたちで行いました。 第2イテレーションも書きました。続きに興味ある方はご覧下さい (更新) 第3イテレーションも書きました。続きに興味ある方はご覧下さい 1st iteration favotter の みたいな NG ワードのフィルタリング機能を RSpec で作りましょう。まずは NG ワードの検出機能を作成します。 このイテレーションでは最初ベタな形のテストコードと実装を書き、だんだんとそのコードを洗練させてゆきま
2012年11月16日13:55 JavaScript Ruby グラフ描くならMorris.jsがお手軽で良いかも こんにちわ。寒くなってきましたがみなさまお元気ですか? さて、先日ちょっとしたグラフを描画したかったんですよ。それでなにか使いやすいライブラリ無いかなーと思っていたら railscast (revisedなので有料です) で Morris.js ってjQueryプラグインが紹介されてて良さげだったので使ってみました。google analytics みたいなツールチップも出してくれます。 使い方はとっても簡単です。 まず、jQuery (>=1.7) と Raphael (>=2.0) が必要です。あとは Morris.js があれば動作します。 これらを app/assets/javascripts/application.js に設定してください。この記事執筆時点での
2012年03月02日19:57 カテゴリ RSpecをvim-quickrunから非同期で実行して、その出力結果に色をつける。(背景色バージョン) 追記:2013年5月14日 バージョンが変わったのか仕様が変わったのか、この記事では動かなくなったので↓を訪れてください。 "quickrun-vimでrspecの実行結果のカラー設定をする"http://teranishihiroki.com/quickrun-vimでrspecの実行結果のカラー設定をする/ vim-quickrunからRSpecを実行しても色がつきません、しかし、記事の通りにして成功すると下記のよう色がつきます。 ※実行結果RSpec失敗例(左側のアウトプット画面に背景色がついたことが確認できます。) RSpec成功例(見やすいように画面分割を調整しています。) ※この記事は前回↓に書いた記事の背景色バージョンです。 英
自分のサーバから他のサーバへ scp を使ってファイルを転送していたら、リターンがなく stalled になったので Ctrl + C でコマンドを中止したら killed by signal 2 というエラーメッセージが表示され、転送速度の上限を設定して回避する事ができました。 wget –limit-rateのオプション。 単位はbyte/秒 wget –limit-rate=100000 http://XXXXXX.com/aaa.tgz これで100KB/秒で転送。 scp -lオプション。 単位はKbit/秒 scp -l 800 root@XXXXXX.com:/aaa/aaa.tgz ./ これで100KB/秒で転送。 rsync –bwlimitオプション。 単位はKbyte/秒 rsync -av –bwlimit=200 root@XXXXX
quickrunはデフォルトでいろんなファイルを実行してくれますが、rspecまではカバーしてくれていないので、 hogehoge_spec.rb等のファイルを開いて、quickrunすると普通にrubyコマンドで実行されてしまいます。 ソースコード自体でrspecライブラリをrequireしていれば、それでも動作するはずですが、 普通はrspecコマンドから実行することを想定しているので、 余計なrequire記述はしていないと思います。 なので、vimrcにちょこっと設定を追加して、 rでサクっとrspecコマンドから実行できるようにします。 let g:quickrun_config = {} let g:quickrun_config._ = {'runner' : 'vimproc'} let g:quickrun_config['rspec/bundle'] = { \ 'ty
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く