サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
d.ballade.jp
Linux KVM の virtio-net を利用している際にリモートホストへの PING 結果がマイクロ秒のオーダーで安定しない(ブレる)という話を見かけました。 Linux KVM の仕組みや QEMU のデバイスエミュレーションの仕組みを考えれば「そんなもの」かなと思い、調査および追加の実験をしてみました。なお、本記事は x86 アーキテクチャの Linux KVM の動作に基づきます。 パケットが送信される仕組みping コマンドなどにより発生した、送信パケットは OS のネットワークスタック(L3, L2)を通じてイーサネットのドライバに引き渡されます。今回はLinux KVMのデバイスエミュレーションを利用した際のレイテンシーに注目したいため、プロセスからデバイスドライバまでデータ届く流れについては触れません。 Linux KVM の仮想マシンで使われる virtio-net
あけましておめでとうございます。 久々にサイゼリヤで外食したら「超難解 大人の間違い探し」があったので、解いてみました。おやすみ pic.twitter.com/neRyrUjsBp — Takeshi HASEGAWA (@hasegaw) December 5, 2021 先日、久々にサイゼリヤで外食をした際、レジにて間違い探しを配っているのに気づきました。自分がこれを手にした瞬間に頭のなかで間違いを見つけるプログラムができたのですが、数日後の深夜に実際にコードに落として、動くものができました。 今回は、どのようにしてこの出力を得たかについて、具体的なコード例とあわせて紹介します。 基本的な考え方 サイゼリヤの間違い探しは、左右反転した状態で絵の違いを見つけるものです。今回はAKAZE特徴量を用いてふたつの画像を重ね合わせた上で、差異部分に色をつけてマークしていくことにします。 入力画
Oculus Rift CV1 用のレンズアダプターで近視レンズを組み込んだので、久々にブログにまとめようかと。 皆さんの VR ライフ満喫していますか? 実は... 私はあまり満喫できていませんでした。眼鏡男子の私にとって Oculus Rift CV1 の利用それほど手軽ではなかったからです。 普段、私は乱視矯正・近視矯正の両方が入った眼鏡をかけています。例外的に、冬にスノーボードを楽しむ時にはワンデータイプのコンタクトレンズを使っています。このため、 Oculus Rift CV1 で何か VR コンテンツを楽しむにあたっても、 Lucky's Tale 程度のコンテンツなら裸眼で問題ないとはいえ、 EVE: Valkyrie にょうな UI であったり、細かい文字を読み取らないといけないようなコンテンツではコンタクトレンズを装着しないと楽しめない状況でした。また、私が利用しているの
先日オープンソースカンファレンス2016東京でIkaLogを出展した際、PYNQ-Z1をIkaLogのデモ用ハードウェアに利用したのですが、その際に色々と質問されることがありました。今回はPYNQ-Z1がどのようなものなのかについて、私の偏った視点から紹介します。 PYNQって何ですか? PYNQというのは、基板やLSIパッケージではなく、Xilinx社が提供する「Jupyter Notebookから使えるFPGAデモシステム」を指しています。以下はXilinx社が公開しているPYNQプロジェクトの概要を引用したものです。 PYNQ is an open-source project from Xilinx that makes it easy to design embedded systems with Zynq All Programmable Systems on Chips (A
久々にFPGAいじりをしています。 今回入手してしまったのはPYNQ。Xilinx Zynq7020シリーズを搭載した評価ボードで、あらかじめ用意されたイメージをSDカードに書き込んであげればJupiterからWebブラウザ経由でもいくらか操作を試せるというお手軽さがウリ。 届いたPYNQのパッケージ 秋葉原の職場に送ってもらったので、受け取ったら早々と部品やでヒートシンクと熱伝導シーツを調達。 SDカードにイメージを焼いて起動したら、当然とはいえ、普通にヘッドレスなARM7 Linuxマシンとして起動してきた。OSはUbuntu 15。 OpenCVは 3.1 で、FFmpegサポートも入った状態でコンパイルされている。……これは色々と便利なのでは? 試しにIkaLogでビデオファイルを解析させてみたら、あっけないほど簡単に動いた。 PYNQにはビデオキャプチャ利用を想定したHDMI I
週末に開催された第二回スプラソンにて、パブリックビューイングシステムを導入しテストしてみました。今回は機材の都合上4画面のみの投影となりましたが、なかなか会場を盛り上げてくれたんじゃないかと思います。 第二回Splathonを開催したぞ(42日ぶり2回目の #splathon ) 第二回Splathon@Speee(IT企業対抗スプラトゥーン大会) まとめ #splathon 第一回スプラソンの際に特定のプレイヤーの行動のみが大型スクリーンに投影されており、できれば両チームの視点からプレイを見たい、と思ったので、色々と検討していました。 一番簡単?なのは WiiU の出力を全部ひとつひとつ大型テレビなどに投影し、並べて見ることです。しかし、大型テレビが8台も沸いてくるようなリッチな環境は滅多にありません。また、プレイ画面とPV画面を別にするとスプリッタの準備も必要です。あわよくば、そこまで
この記事は Splatoon Advent Calendar 2015 の 23 日目の記事です。(空きがあったので登録してみたものの.... 遅れてすみません) 前の記事:ギア交換所とS+に上がるための3つの戦略 次の記事: 私は別にスプラトゥーンで何か語れるほどプレイしていませんし、今回はスプラトゥーンのみんなで楽しくアソブための機材を調達した紹介をします。 スプラトゥーンは4対4のチーム戦が基本です。いわゆる野良マッチであれば世界のどこかのプレイヤーとチームを組んで戦いに臨むことになります、場合によっては仲間内で集まってタッグ同士のマッチに参戦したり、知り合い同士でプライベートマッチを開き対戦することも可能です。 最近知ったのですが、みんなで一カ所に WiiU を持ち寄ってプレイすることを”スプラソン”というのだそうです。最近スプラソンが Speee で開催されたので遊んできたのです
この記事は おうちハック Advent Calendar の 10 日目の記事です。 前日の記事: Extreme Home Hackレポート 翌日の記事:メインブレーカーが落ちる前にドライヤーを止める なんか面白そうなので参戦してしまいました。私は玄関ドアにネットワークカメラを設置したことがあるので、そのときの話を紹介したいと思います。 すべてのはじまり 下の階から騒音のクレームがきてるけど、今は上の階からゴトゴト音がもれてきてる。築40年のマンションで静寂期待するほうがアホだよ。夜の音漏れナシを期待するならお前が引っ越せ。(割と本心 — hasegaw (@hasegaw) 2013, 1月 22 隣人から、わたしの在宅、不在に関わらず「私の騒音がうるさい」というクレームがくるようになったのです。このクレームの一週間後、私は当時の勤務先の本社があるソルトレイクシティに出張する予定でした
私の Twitter をご覧になっている方であれば作っていることは知っていたでしょうし、スライドがかなり反響を呼んでいるので、すでにご存じの方も多いかもしれませんが、金曜日に、「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側 というタイトルでスピーカーをやってきました。 IkaLog (イカログ) は、任天堂の Wii U 向け塗りシューティングゲーム「スプラトゥーン」の画面を、 HDMI キャプチャデバイス越しに監視して様々なことをするソフトです。ゲーム開始・終了やゲーム中の状況画面認識して、数値や文字列として扱えるようにする認識処理、そして、その認識結果を CSV, JSON, Twitter, Slack, Fluentd, またスプラトゥーン戦績専用 SNS とも言える stat.ink に投稿する機能などをプラガブルに実装できます。 IkaLog 開発開始のき
10月17日付けで、3年半務めさせていただいた某社セールスエンジニアのポジションを resign しました。 この三年半はとても刺激的でした。きっかけは2010年の夏、ポジションのオファーの連絡をいただいた際には、それまでの話とは違い、オファーが目に入った三秒後には「これは面白い、やりたい!」という気持ちが溢れていました。 HR 担当者との Skype 越しでのインタビューでは、「ウチの会社は昼メシ時に一本スキー滑ってる人もいるよ」「うわぁ!オレ絶対入社したいです!」「おいおい、これは面接だからそこは忘れるなよ?」 「で、あなたはこの会社で何をするの?」「私は御社の日本チームを代表するエンジニアになりたいです!」「、オーケー!オーケー!」みたいな、英語が話せないなりにアレな感じではじまりました。 自身の能力不足で色々なチャレンジがありましたが、恐らく同社のAPACのセールスエンジニアとして
cpuspeed がオンだと.... — はせがワン (@hasegaw) 2014, 5月 29 ミドルウェアのスループットを測ろうと思ったのですが cpuspeed などの設定をぜんぜんやっていませんでした。。。 経験上、チューニング過程でいじりたくなるようなパラメータを思い出してみます。 パワーマネジメントに関する設定はオフにする UEFIやBIOSにはパワーマネジメント設定がありますが、これらを無効にするとプロセッサなどが無条件で定格クロックで走り続けます。ピーク性能を高めたり瞬発力を上げるためにはパワーマネジメントはオフにします。当然ながらベースの消費電力やファンの騒音は増えますが、かわりにいくらかピーク性能の向上が見込めます。 Hyper Threading はレイテンシーとスループットのトレードオフ Hyper Threadingは、たぶん、コア内でパイプラインを取り合うから
先日とある ioDrive シリーズのユーザーから、特定のファイルシステムでNANDフラッシュデバイスへの書き込みが行われないという件について相談をいただきました。整理してみると: ファイルシステム上に書き込み可能な状態でファイルをオープンする。 一定ペースで、ファイルへ Buffered I/O で書き込み。 ファイルをクローズする。 このとき、特定条件下のXFSでは、(2)の段階では全然フラッシュが発生せず、(3)の段階でまとまったフラッシュが発生するのだそうです。 ストレージ側からすればI/Oが来ていない段階のお話なのでアプリケーション(ミドルウェア)からシステムコールを通じてカーネル側が原因でI/Oが発生しておらず、まとまったギガバイト級のI/Oが発生すれば、それは高速と言われる ioDrive ですらフラッシュに数秒間かかってしまう、ということでした。よく言われるのは、Linux
InnoDBにはデータの圧縮機能がありますが、パフォーマンスが低いことからあまり使われていません。ただ今年の Percona Live で Oracle MySQL, MariaDB, そして Percona Server が新しい InnoDB Compression を出してきました。これはFusion-ioの R&D チームがフラッシュストレージ向けの MySQL 高速化の一環で開発したパッチが元になっています。ちなみに私は Fusion-io の社員ですのでこの発表をワクテカして待っていたのですが、折角コードが一般にリリースされたので、ソースコードを眺めて動作を調べることにしました。 参考にしたのは MySQL Server Snapshots (labs.mysql.com) にあるMySQL with InnoDB PageIO Compression のソースコード、およびM
Thunderbird 2.0 で IMAP を利用する場合、全てのIMAPフォルダは表示しない設定がデフォルトのようです。しかし、私の場合、サーバ側の procmail や自作スクリプトにより、メーリングリストごとに自動的にフォルダを作成し仕分けする仕組みを作っていますので、購読されていないフォルダもどんどん表示されていないと困ります。 そこで、 Thunderbird 2.0 で常にすべての IMAP フォルダを表示する設定について探したところ、以下の場所にありました。 アカウント設定 ≫ サーバ設定 ≫ 詳細 ≫ 購読しているフォルダのみ表示する 随分悩んだ…。
おーい、ておくれのみんな、聞こえてるか? 最近IT業界は元気ないって? 単価がヤスイ、仕事がオワラナイ、 イマイチなニュースばかりだもんな! でもクヨクヨしててもしょうがないだろ? いまはローレイヤー弄って遊ぶのさ! カーネル/VM探検隊から、みんなのテンションアガりまくる 最高にホットなAdvent Calendarエントリだ! 「次世代GPIOインターフェイスの製作」 ておくれろ、エンジニアよ ておくれ狂っちまえよ! 今年もカーネル/VM Advent Calendarの時期がやってきました。というわけで、この記事は2013年のカーネル/VM Advent Calendar の12/24の記事でーす。恥ずかしながら最近はそれほどローレイヤいじってないので、記事のネタ用に下記の真新しい何かを製作しました。 ■ 次世代I/Oインターフェイスの検討経緯 ところで皆さん Ejectコマンドユー
(2013/12/10追記: まるでZFSが不安定かのようにとられている方もいくらかいらっしゃるようですが、記事の中で書いたとおり、ZFSプールが完全にインポートできなくなった経験は2009年以来RAID-Zを使っていて一度もありません。むしろカーネルが何度も停止していてもソフトウェアベースのコントロール複数のディスクで構築しているパリティ付きのボリュームが問題なく使えているのはやはり優秀だと思います。dedupはちょっとアレですね...) ZFSの中でも一度オンにしてしまうと生涯呪われてしまい成仏できなくなる機能、それが重複排除(Deduplication)です。 ZFSで dedup=on と設定した状態では、書き込み時に重複排除に使用する DDT という情報をメモリ上およびメディア上に保持するようになります。普通に読み書きしている範囲ではそれほど困らなかったりもするのですが、曲者なの
iostat などのステータスをとりあえずグラフ化したくて gnuplot を使ってみる。元データは Linux 上にて iostat -mx 1 で出力した。 [hasegaw@localhost ~]$ iostat -mx Linux 2.6.32-220.el6.x86_64 (localhost.localdomain) 11/26/2013 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.51 0.00 1.23 10.73 0.00 87.52 Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz aw
外資系企業に転職して2年半ほど経ちました。正直いまだに英会話は大変残念なレベルだけど、出張中などは特に完全に英語の世界に浸れるので大変勉強になっています。そんなところで思ったこととかをたまにはブログに書こうかと。 とある英会話フレーズ集もやらかしていたのでびっくりだけども "Good question" を素直に「いい質問ですね」と直訳するのはやめておいたほうがよい。日本語で「いい質問ですね」と訳しちゃうと、英語圏の人とちゃんと会話していない人はほぼ確実に逆の意味でとらえてしまうはずなので、それって訳してるとは言えないんじゃないかなと。 「InfiniBand の物理層は複数のレーンで構成されているということだけど、フレームどのようにレーンにのるんですか?」とストレージプロトコル専門の人に聞いたことがありますが、そのときの答えはこんな感じだった。 「Good question, .. I
Ruby の VM は giant lock の塊で、スレッドといっても実行できる Ruby VM のコンテクストはひとつだけで、それを時分割多重で動かすのがふるーい Ruby のスレッドだったらしい。なるほど Ruby のスレッドの性能が低いって言われていたのはこれのことだったのね。リンクするライブラリの都合上 CentOS 6 で作業を行っていたので、そのまま標準の Ruby 1.8 を使っている限りこれはどうにもならないんだけど、 Ruby 1.9 へアップグレードすると、 Ruby が管理しているオブジェクトを触らない前提で giant lock を解放できる仕組みがあるらしい。 Ruby のマニュアルには下記のように書いてある。 ネイティブスレッドを用いて実装されていますが、 現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行され
久々にブログでも書こうかなっと。 今回は、最近出てきた OpenNVM というものを紹介してみたいと思います。 OpenNVM :: Welcome to the OpenNVM Project http://opennvm.github.io/ フラッシュメディアに新しいアクセス手段が求められる理由 OpenNVM アトミックライト バッチ インターフェイス スパースアドレス空間とブロックの割り当て状況の取得 ファイルシステムでのスパース活用例 データキャッシュでのスパース活用例 NVMKV ■ フラッシュメディアに新しいアクセス手段が求められる理由 HDDよりも高速として知られるSSDは、フラッシュメモリを従来どおりの「ブロックデバイス」としてアクセスできるようにして後方互換性を維持していますが、フラッシュメモリのポテンシャルは現状オペレーティングシステムが持つ、レガシなAPIだけでは
仮想マシンが大量にほしかったので ESXi 上でリンクドクローンを量産しようとおもったら UI 上からできなかった。 PowerCLI からごにょごにょ。 $SRC_VM で指定した仮想マシンが持っている既存スナップショットを親とするからっぽの Delta ディスクを生成。 $SRC_VM= "Source VM Name" Add-PSSnapin VMware.VimAutomation.Core $vi = Connect-VIServer -Server IP.add.re.ss -User root -Password vmware $esx = Get-VMHost ESXi.Host.Name $vm= Get-VM $SRC_VM | Get-View $cloneFolder = $vm.parent $cloneSpec = new-object Vmware.Vim.
こんばんわ。出遅れましたが12月13日は カーネル/VM Advent Calendar 2012 にて私の当番、といっても一昨年、去年ほど頑張ってネタを仕込めていないので、昨晩調べてたことを軽くまとめておきたいと思います。 ご存じのとおり、Linux KVMやFreeBSDのBHyVeなどはメインループをユーザモードプロセスに持たせる形で仮想マシンが実装されています。また、CPUにはIntel VTもしくはAMD-Vと呼ばれる仮想化支援機能が搭載されており、これらが仮想マシンの実行を行う命令群を提供します。 ただ、実際にはI/O操作など非同期で処理が行われるものがあります。例えば、わかりやすいのは下記の三点でしょう。 タイマ割り込み ディスクI/Oの完了通知 ネットワークパケットの到着通知 割り込みは遅延させずに通知させる必要があります。たとえば、タイマ割り込みは遅延するとゲスト内で正確
7月28日〜29日に埼玉県内某所にてBHyVeハッカソンが開催されました。BHyVeとはFreeBSD向けの全く新しい仮想マシンモニタです。 BHyVeについて簡単に紹介しておきましょう。2006年にXen 3.0がVT-xを使って完全仮想化を実現し、その後にLinux KVMが続きました。これらの仮想マシンモニタの設計上の大きな相違点は、ハイパーバイザーとして必要となるスケジューラなどの機能を新たに実装したか、 それともホストOSにある機能をうまく再利用したか、という点が第一に挙げられるでしょう。 もうすこし細かく解説しておくと、Xenの場合は何もなくてもXen自体が複数のOSを実行できます(管理のためにdomain-0が必要なのはここでは考慮しません)。それに対してLinux KVMはユーザプロセスのひとつという位置づけで仮想マシンを実行するためのカーネルモジュールで、それ自体はスケジ
早期帰宅ソリューションを提供する ふしおにお は、インフラエンジニア双六をより有利に進めるためのアイテムカード「i○ドライブⅡ」を発表しました。 i○ドライブは、i○オカエリー プラットフォームをベースとした日々の帰宅を高速化するソリューションで、サーバ擬人化ユーザ会が提供するインフラエンジニア双六の追加アイテムです。双六ゲーム中にてインフラエンジニアが本アイテムを使用すると、業務のボトルネックを解消できます。月初や期末の書類業務にも有効。スムーズな帰宅と団欒を約束し、家族愛を深めます。 今回発表するi○ドライブⅡでは、サイコロの出目が 2X ではなく +6 されることにより、出目の期待値が 7.0 から 9.5 へと上昇しました。また、出目の期待値が向上しただけでなく、双六プレイヤー側のプリンターを有効利用することによりアイテムカードのコスト削減を実現。同等性能のアイテム群では突出した、
ML115 G1 クラスタの処分も視野に入れて NTT-X で特価になってるのを一台ポチってみました。 他の方がレビューされているので基本はそれを見ればいいと思いますがヘタレとして自分が気づいた点のみまとめます。 システムボード仕様は 3xx シリーズ並? POST画面のほかBIOSコンフィグレーションも 3xx シリーズと同じように見えます。 3xx シリーズをいじりたいけど手が届かない人には入門機としてありじゃないでしょうか。 スクリューレスで快適メンテ 度々構成を変えるような使い方には無手居るケースだと思います。ただ PCIe スロットまわり、とくに一番下のスロットは抜き差し大変かもしれない。 電源は 350W 350W の電源がのっています。あと PCIe 用の 6 ピン電源コネクタはないので SLI とか CorssFire とか想定して買うとちょっとガッカリします。まあそこまで
たまにはブログを書こうかと。今日はこのブログではじめてフラッシュメモリの話題を扱うことにしましょう。 個人的に大好きなプレゼンテーションがあります。タイトルは Mythbusting Flash Performance 、元Sun(現Oracle)の Solaris プラットフォーム エンジニアリングのバイスプレジデント Bill Neshim 氏が Flash Memory Summit 2011 のキーノートとして講演した際のスライドのようです。 このプレゼンテーションには衝撃的なグラフが入っていて、これを見たとき衝撃を受けました。それ以来このプレゼンテーションはお気に入りとして常にマシンの中に入っています:) 予期可能なレイテンシ性能のフラッシュメモリデバイス、そうでないフラッシュメモリデバイス フラッシュメモリデバイスは、使用されているNANDフラッシュメモリのパッケージごとの性能
こんにちわ。@hasegawです。あけましておめでとうございます。今年もよろしくお願いします! かなり久々のブログ更新となりますが、本日は カーネル/VM Advent Calendar にてまたまた私の当番!ってことで、今回は FreeBSD 8.1-RELEASE に Linux KVM 用のタイムカウンタを実装してみたというネタでお話しようかと思います。 昨年のネタ: FreeBSD VIMAGEを使ったTCP/IPのルーティング デモンストレーション ■ Linux KVM のタイマ機能 まずバックグラウンドについて説明しておきましょう。 FreeBSD のはじめとする殆どの OS では、以下の計算式でシステム時間(年月日・時分秒)を把握しています。 システム時間 = システム起動時の時間 + システム起動後の経過時間 このうち「システム起動時の時間」はRTC(リアルタイムクロック
Xenの完全仮想化やKVMを利用するためには、プロセッサ(CPU)の仮想化支援機能が必要です。 プロセッサの仮想化支援機能は2006年頃の製品から実装されるようになり、2007年以降に提供されたプロセッサのほとんどに搭載されています。一部の廉価なプロセッサでは実装されていない場合もあります。 x86系プロセッサに搭載されている仮想化支援機能は、プロセッサの種類やベンダにより違いがあります。 Intel製プロセッサの場合: VMX, VT-x Intel製IA-64プロセッサの場合: VT-i AMD製プロセッサの場合: SVM, AMD-V (Pacifica) プロセッサの仮想化支援状況を確認する一番簡単かつ確実な方法は、Linux(ディストリビューションのインストールCDや1CD Linuxなどでもかまいません)で起動し、シェル上で下記のコマンドを実行し、確認することです。 # cat
5月28日(土)に開催された、東京OpenSolaris勉強会 2011.05に参加してきました。 @nslope さんに「自宅ZFSで盛り上がろうず!」とお声がけをいただいたので、構成的にヘンタイな我が家のZFS環境について簡単に紹介させていただきました。 OpenSolaris 界隈の方はマニアックな方々ばかりなので今頃私が ZFS 自体の話をしても全然面白くなりませんし、ということで、あくまでもZFS的に非一般的な我が家のZFS環境についての紹介とさせていただきました。 私の自宅では、 CentOS 5 の Xen 環境において OpenSolaris の開発版スナップショットが動いており、 ZFS ファイルサーバとして利用しています。こうしてある理由としてはファイルサーバとしてZFSの最新機能を活用しつつ Linux とのコンソリデーションを実現する、またOpenSolarisに対
次のページ
このページを最初にブックマークしてみませんか?
『hasegaw blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く