WalB の紹介とプロトタイプの性能評価 WebDB Forum 2012 の技術報告セッションで発表.
![ログ先行書き込みを用いたストレージ差分取得の一手法](https://cdn-ak-scissors.b.st-hatena.com/image/square/545c3655bed654bf08a0a7a060c450feca25b6c5/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fwalb-webdbforum-20121120c-121119201402-phpapp02-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
xargs の -P オプションを使うとプロセスを複数起動して処理を並列に行なうことが出来る。 例 例えば、 1 万枚の JPEG 画像を全て 800x800 に収まるように効率良くリサイズしたい。 まず私はこのようなコマンドを考えた。 convert --geometry 800x800 *.jpg しかし zsh に怒られた。 zsh: argument list too long: convert 引数が全て展開されるためこのような事が起きる。 私は xargs を使って処理することを思い付いた。 ls | xargs -I{} convert --geometry 800x800 {} c_{} 処理は行なわれるが非常に遅い。 しかも CPU を全く使っていないことが分かり、私は処理を並列的に行なう事を考えた。 そこで xargs の -P オプションの出番である。 P の後に並列
id:studio-m (nekoyaさん)にblogエントリで先を越されたけど自分はちょっと使い所と事情が異なっていそうだったのでそれを書いておきたく!! 0. RPS/RFS の利用 CentOS5 系でのやり方は nekoyaさんのエントリ を見てください。 CentOS6 系でのやり方は kazeburoさんのエントリ を見てください。 自分はkernel 2.6.39で試しましたが問題なく動作しました。 1. RPS/RFSの利用を迫られた背景 nekoya さんは app サーバの所でネットワーク問題が起こっていたようですが、自分の場合 LVS と outbound のトラフィックをさばいているLinuxルータで厳しいことになってきておりました。 この時発生する具体的な症状として LoadAverage が 1 で張り付いて応答が極端に悪くなる というものがあります。 これをど
はじめに 第一回カーネル/VM探検隊@関西、第二回日本Vyattaユーザ会ミーティングで行った発表のダイジェスト版です。 詳しく知りたい人はこちらの内容ではなく、第二回日本Vyattaユーザ会ミーティングの動画、資料をみる事をお勧めします。 あと、最新って書いてあるけど割と古い話題です。すんません。 発表資料 従来型のNICとネットワークスタックの組み合わせでは、マルチコア環境においても1つのNICの受信処理は1つのCPUでしか行えません。 これは、NIC上に受信のキューと受信を通知する割り込みが1つしか存在せず、ハードウェアからデバイスドライバまでのレイヤーでは受信処理を並列に行う事が本質的に出来ない事が原因でした。 これが原因で、通信量が多い時にパケット処理の負荷が特定のCPUへ偏ってしまい、CPU数を増やしても性能がスケールしないという問題が発生します。 この問題を解決する為に、1つ
"3日続いたら褒めて"シリーズに便乗して、僕も頑張ってブログを更新したいと思う。まずはライトなネタから。 タイトル通りですが、皆がオペレーションするようなサーバで他のユーザが主にどんなコマンドを使っているかをチェックするワンライナー。 # cut -d ' ' -f1 /home/*/.bash_history | egrep -v "^#" | sort | uniq -c | sort -r | head -n 10 1587 sudo 1165 ssh 1020 exit 934 ls 922 tomahawk 855 cd 724 ll 231 vim 180 scp 174 tomahawk-rsync上位10件を指定すると、こんな感じで出力されます。sudo打ち杉やw 逆に最後をheadじゃなくて"tail -n [出力件数]"とか指定すると、マイノリティなコマンドが並んで、な
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
2018年12月4日 Japan Container Days 講演資料 谷脇大輔 Preferred Networksでは1000個以上のGPUとInfiniBandからなるオンプレミスのクラスターを自社で構築しており、研究者が様々な目的、リソース量、実行時間の機械学習ジョブをKubernetes上で実行して研究成果を出しています。 KubernetesはKubeflowの登場など、機械学習基盤としても非常に注目されている一方で、現実的には未だ発展途上です。 講演では機械学習基盤としてのKubernetesの導入理由、その実用性と将来性、Preferred Networksの挑戦についてお話ししました。
はじめに ずいぶん前にWindows上に作ったPerl Net::Twitterの環境をCentOS 6.2 のテキスト環境に移行するまでを行います。 続きを読む perlbrewのインストール perlbrewはperlの複数のバージョンをひとつの環境に共存させることができるモジュールです。まずはダウンロードです。 curl -LO http://xrl.us/perlbrew 次にインストールですがそのためにperlを使います。perlを使いたいからperlbrewを入れるのに、そのためにperlを入れるのも妙な話ですが(笑)。 なお、perlbrewはデフォルトでは~/perl5/perlbrew以下にインストールされますが、個人的に隠しディレクトリにしたかったので~/.perlbrewにインストール先を変更しています。 sudo yum install -y perl PERLBR
gcc (GNU コンパイラコレクション) は C 言語のコンパイラで、cygwin や unix 系 OS で使うことができます。Windows のコマンドラインから使いたい場合は Mingw を導入する必要あり。非常に高機能ですので、ここでは書いたプログラムにライブラリを追加してコンパイルする程度の内容を載せています。検索すれば色々出てくるので、必要に応じて各人調べて利用しましょう。 コマンド一例 gcc -o ファイル名 xxxx.c -lm ~/lib/libxx.a -I ~/include/xxxx.h -fopenmp -O2 簡単な各項目の説明をします。xxxx.c というファイルをコンパイルするときを例に取りました。-o はできあがるプログラム (windows では .exe、linux では .out) のファイル名を指定、-lm は sin
速いと噂のIntel純正コンパイラを使用してみたいと思います。 非商用利用の場合は無料で使えるとのことですので、試してみましょうか 今回の条件 ホストVM環境:VirtualBox 4.1.18 r78361 ホストマシンのスペック マザーボード:GIGABYTE EX58-EXTREME CPU:Intel Core i7-975 Extreme クロック倍率:30 ターボ無効化4.2GHz ベースクロック:140MHz RAMモジュール:Corsair CMZ12GX3M3A1600C9 RAM:12GB(4GBx3) クライアントVM設定 RAM:3043MB CPU:7個 チップセット:ICH9 IO APIC有効化 IDEコントローラ:PIIX4 ホストのIOキャッシュを使う SATAコントローラ:AHCI ホストのIOキャッシュを使う VMターゲット環境:RedhatLinux
最近、雑誌の記事でよく見かけるようになった、Intel Compiler 通称 icc ですが、Linux系にプリインストールされる gcc と比較して re-compile するだけで概ね 30 % 程度の高速化が図れるようです。 試しに、当サイトで配布している「高速半角全角ライブラリ」で検証してみました。 gcc - compile版 [h2z]Drk::Encode[1000000]LOOP TIME=13 [z2h]Drk::Encode[1000000]LOOP TIME=13 icc - compile版 [h2z]Drk::Encode[1000000]LOOP TIME=10 [z2h]Drk::Encode[1000000]LOOP TIME=10 とウワサ通りの高速化が実現できてしまいました。実は version 6 の頃に試用したことがあったのですが、 gcc との互
usenetbinaries.com is for sale Please prove you're not a robot
インテル C++ Composer XEには、強力な最適化機能を備えるコンパイラが含まれている。インテルCPUが備えるSSEやAVXといった機能を効率的に利用するコードや、マルチコアによる並列処理を行うコードを自動的に生成できるのが特徴だ。本記事ではインテル C++ Composer XEが持つさまざまな最適化機能を紹介するとともに、コンパイラが出力するアセンブラコードをチェックしてその効果を探っていく。 無視できないコンパイラの最適化機能、アプリケーションによっては数十パーセントものパフォーマンス向上も 近年のCPUの進化に伴い、コンパイラの最適化機能が注目されるようになってきた。パイプライン化やキャッシュの大容量化、分岐予測や投機的な実行といった機能の採用など、CPUの内部アーキテクチャは進化を続けている。そのため、コンパイラにはCPUのリソースを効率良く利用できるバイナリコードを生成
サーバの動作に異常が発生した際に原因を探るためのLinuxコマンドで、自分用のメモです。 全てmanとかググったら出てくるので説明は適当です。思いついたら後で追記していくかもです。 対象はDebian Squeezeになります。 全てパッケージインストールできるもので、パッケージ名は [in packagename] としてあります。 各所よりコメントありがとうございます。 良さ気なコマンドは追記していきます。 <追加したコマンド> * telnet (+コメント wget, netcat) * arp (+コメント arpwatch) * pstree * fdisk コメントに gdisk * host, dig * watch * reboot
たとえば、変数 var の値を2進数で表示したい場合は、次のように指定します。 (gdb) p/t var 一覧表示 whatis 変数の型を調べる。 info b 今設定しているブレークポイントの一覧を表示 セグメントフォルトをした後に利用すれば、どの関数で発生したか確認できます。 info stack 関数の呼び出しスタックの一覧を表示 info Thread 存在しているスレッドの一覧を表示 異なるアドレスにおける処理継続 以下のコマンドを使用することで、ユーザが選択したアドレスにおいて実行を継続させることができます jump linespec linespecで指定される行において、実行を再開 jump *address addressで指定されるアドレスにある命令から、実行を再開 アドレスが分かっている場合のメモリリーク出力 xはhexの意味です。 (gdb) p (char*)
プログラムの種類によっては、そのまま実行できるものと、実行できるようにするために「ビルド」が必要なものとがあります。Cなどのコンパイルが必要な言語で書かれたプログラムは当然ビルドが必要ですし、コンパイルが不要な言語であっても、インストーラパッケージを作るというビルド作業が必要な場合はあります。 ビルド作業の自動化のためのツールとしてmakeなどがありますが、そこまで本格的な事をやる必要がない場合は、シェルスクリプトで「ビルドスクリプト」を作るのが手軽でおすすめです。この記事では、そのような場合に役立つシェルスクリプトのテクニックを4つご紹介します。 エラーの気付きやすさとデバッグのしやすさを高める メッセージに色を付ける シェル関数をライブラリにする 一時的に作業ディレクトリの中に入る エラーの気付きやすさとデバッグのしやすさを高める はじめに紹介するテクニックは問題が発生した時に気づきや
GNU/Linuxに慣れてると、よく打つtop/ps/netstatがOS X使ってるときにLinuxのそれと全然ちがう挙動で使いにくい。同じ挙動にするのman見ても無理そうなんで、なんとか同じように使えるのないか調べてみた。 top htopならLinuxとOS Xで同じように使えるのでhtopを使うとよさそう。 brew install htop-osx ps psのいい代替は見つからなかったけど、ps auxfのようにツリー表示したいときの代替はpstreeを使うとよさそう。 brew install pstree netstat netstatはnetstat -tnpaとかnetstat -tnplをよく使うけど、前者はlsof -nP -iTCP、後者はlsof -nP -iTCP -sTCP:LISTENで代替できそう。 $ sudo lsof -nP -i4TCP -sTC
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く