メモリをメッチャ使ってみる

前回cpuに負荷をかけてload averageをメッチャ上げてみたが、今度は、メモリをひたすら消費するとどうなるか見てみます。

今回もwatchdogタイマーの動作具合を見るのが目的です。

まず、以下のようなコードを書いて

 

 

 

コンパイルして、

 

 

 

実行します。

 

 

メモリをジワリジワリと消費して行って、そのうち強制終了されると思います。

その間、経過を見るため他のコンソールでtopします。

 

 

 

RESの値が搭載メモリ近くになると、強制終了すると思います。このRESの値が実際に確保する値です。malloc時に

もっと多めに取れば、早く確保出来ると思ったのですが、あまり値が大きいと仮想メモリ(VIRT)ばかり増えて、

実メモリ(RES)が少ししか増えなかったので、小さめにしていっぱい回します。

RESが搭載メモリ近くになると、コンソールの反応とかも悪くなりますが、しばらくすると対象プロセス(mem_full)が

強制終了されます。この強制終了は、有名なoom-killerさんが行なってくれます。

syslogを見ればそんなメッセージがあると思います。

ただ、必ず予想していたプロセス(mem_full)とは限らず、他の正常プロセスも落とされる可能性があります。

ここまでやってメモリを食い尽くすプロセスがいても、きっとoom-killerさんが良きに計らってくれるので

watchdogタイマーで落ちることは無さそうです。

せっかくなので、今度は、メモリ食い尽くしプログラムを同時多発的に実行してみます。

 

 

 

とりあえず100個実行します。topで見るとわんさかプロセスがいます。

コンソールのレスポンスも激遅になり、topの表示も更新されなくなるが

地味にoom-killerさんも動いており、watchdogのリセットが実行される形跡はありません。

watchdogデバイスに定期的に書き込んでいるのは、CentOSにあったその名もwatchdogな

パッケージでインストールしたデーモンなんですが、こいつが何とか頑張っているようです。

この状況だとコマンドも打てないので、強制的に電源を落とすしかありませんでした。

watchdogの意味なし。

一応CentOSのwatchdogでは、load averageにしきい値を設定出来そうなので

それで対処するのもありかと思います(未検証)。

ただしきい値の設定は頭の痛いところです。因みにこのテスト実施時は160くらいいってました。

また、デーモンタイプのwatchdogでは性能が良すぎるのかとも思います。都度コマンドを実行して

デバイスに書き込むタイプの簡易的なものなら、おそらくコマンドの実行が出来ずwatchdogからリセットがかかる可能性が高い気がします。

うーん。watchdogに期待しすぎなのかもしれません。

load averageをメッチャ上げてみる

watchdogタイマーとか仕込んでみて、ふとload averageメッチャ上がってる時に、書き込めなくて落とされたりしないのだろうかと思って
load averageをこれでもかって上げてみた

 

 

 

/dev/urandomをひたすらddで取ってくるだけ。

 

 

load average 100超えてるけど、とりあえず落とされることはないですね。
本番環境だと、何が原因で上がってるのかアタフタしますが、
上げる気になれば簡単に上げられますね。
ただこれだと、CPUには負荷かかってるけど、メモリやI/Oは全然使ってないので
その点も検証する必要がありそう。

シェルでMACアドレスをランダムに生成

ちょっと悩んだので自分用にメモ。
表題の通り、シェルでMACアドレスをランダムに生成する方法。仮想化なんかで、ゲストを自動作成するスクリプトを書いていると、固有のMACアドレスが必要だったりするのでそのメモ。

 

 

 

エレガントでは無いけど、これだけ。
%Xを%xと小文字にすれば、小文字のアドレスが生成される。OUIを指定したかったら、最初の3オクテットを固定にするだけ。

ubuntu 12.10 で SPICE

仮想化と言えば、最近は一貫してkvm(libvirt経由の更にvirt-managerでの)だが、

サーバ用途では全く問題ないが、クライアントとなるとグラフィックがどうしても貧弱で

ちょっとだけ困っていた。最近のvirt-managerの設定をみると、VNCと同じ箇所で、

spiceなるものが選べるようになっていたのだが、ちょっと調べてみたらなんか良さそうなので

とりあえず試してみることにした。spiceに詳細については、ネットで調べるとあまり多くないですが

情報が得られます。

まず、必要パッケージのインストール

 

 

 

virt-manager(仮想マシーンマネージャー)で、ディスプレイを、spiceに
ビデオカードを、qxlに変更します。

なぜか起動時に、
unsupported configuration: spicevmc not supported in this QEMU binary
とかってエラーがでます。

インストールした、qemu-kvm-spiceコマンドを使ってないのが問題なようなので
virshコマンドで手動で変更します。

 

 

を、

 

に変更する。

とりあえず、これで仮想マシンは起動します。

起動したゲスト側で、ドライバが必要な場合は、別途インストールが必要です。
ゲストがWindowsの場合は、
http://spice-space.org/download.html
から、「Guest」の「Windows binaries」をゲストのWindowsにインストールします。

なんかインストール時に聞かれますが、テキトーに答えれば進めました。

最近のウィンドウズだと、ドライバに署名が無いとインストール出来ない場合があるのですが、

なんとかすれば回避できると思います(雑)

spiceにしてみてですが、なんとなく快適になったような気がします。

品質はあまり良くないですが音もでます。

samba4でActive Directoryを構築してみた。

昨年の12月に待望のsamba4がリリースされたので嬉しさのあまり、Active Directory環境を構築してみた。

詳細はここ

ADの素晴らしさはいつも羨ましく思っていたが、ついにオープンソースでの実装が可能となりグループポリシーが反映された時なんて涙がでそうだった。

そもそもADに関して詳しくないので、自分の設定が悪いのかsambaの不具合なのか判断出来ず、実現できない箇所などあるが普通にユーザとグループ作ってGPOを配布する位なら現段階でも問題無さそう。

今のところ一番問題となっているのは、サイトを分けた時のサイト間のレプリケーションが上手く行かないこと。

拠点にADを設置した際に、必要な設定だと思うのでなんとか回避したい。これさえ回避できれば本運用に入っても良いのじゃないかと思う。

ネットワークのトラフィック監視

コマンドでの監視限定

このへんが良さそう

詳しくは見てないがコマンド実行するだけで、なんとなくわかる。

ざっと調べただけで結構あった。

ubuntu nexus7 calibreで電子書籍

nexus7を買ったが、家でちょっとニュースを見たりとか程度で、イマイチ有効活用していなかった。

外出時に使いたいのだが、テザリング環境が整ってないため、出先ではゲームをやるくらいしか使い道がなくなんか良い使い道ないかなーと悶々としていた。

nexus7の電子書籍としての用途は、マンガを読んだ程度だが、サイズ的にも丁度いいし外出先で電子書籍見れないかなーと考えたところcalibreという電子書籍管理ソフトがいいらしい。

電子書籍だけなら、普通にkindle for androidとかのソフトを入れて持ちだせばいいのだけど、それだとamazonで売っている電子書籍だけで、自分がネットから集めたPDFファイルなんかを読むことが出来無い。

他のビューワーでいいじゃんてなりそうだが、kindle for androidの英和辞書機能が非常に優秀で、自分で集めた英語の技術文書なんかもkindle for androidで読みたくてcalibreの導入を決めた。

例によって自分のクライアントPC環境は、ubuntuなのでインストール方法は、以下のコマンドで一発

ubuntu公式にもあるが、calibreは積極的に開発が進められている状況とのことなので、最新のものをインストールするようにした。

calibre本体は、/opt以下にインストールされる模様。

パッケージでインストールしないと、アンインストールはどうすんの?と細かいことを気にしてしまうが、明確な方法が見つからなかった。とりあえず暫定的に以下かな。

  • /opt/calibre/を削除
  • /usr/binのシンボリックリンクを削除

  • 後こいつらを削除?

とおもったら、
calibre-uninstall
ってコマンドがあった。rootのみ実行可能になっているから気が付かなかった。

上記コマンドは実行しておりません。

calibreはGUIがあるので特に使い方で難しいことはなさそうなのだが、

何点か躓いたので記載

  • ニュースが取得出来無い。「インターネット未接続」となる。
    network-managerがインストールされて使って無いとなる模様。自分の環境では、仮想環境のBridge設定などの関係で、network-managerは無効にして、/etc/network/interfacesに直書きしていた。この環境だとインターネット接続がな無いものと判断されてしまう。network-managerのアンインストールで回避。
  • nexus7にデータを送るとエラーになる。
    詳細は調べてないのですが、nexus7のUSBデバッグをONにしたことで回避したのかもしれない。自分のnexus7は、android 4.2にアップデートしたのだが、【{ } 開発者向けオプション】を表示するのに躓いた。
    【設定】->【タブレット情報】の【ビルド情報】を7回タップする。うーん。そりゃわからん。

まだ少ししか使って無いが、calibreの良い点としては、

  • 辞書が便利
    kindleの機能ではあるが、calibreから英語のepubとかを渡すととっても便利
  • ニュースが便利
    端末内に保存してくれるので、外出先でも読めて非常に便利
  • フォーマット変換が便利
    PDFをmobiに変換とかがGUIで出来る。ただ、PDFからの変換は、結構見た目が崩れるのでPDFのままの方が無難

逆に悪い点としては、

  • PDFだと辞書が使えない。しおりが使えない。読み込みが遅い。
    またまたkindle側の問題ですが、なんとかしてほしい。
  • フォーマット変換がよく失敗する
    細かいところは、調べてませんが結構頻発します。

いろいろありますが、kindle for androidを使うならほぼ必須のソフトじゃないかなって思います。

ubuntu 12.04で、プロプライエタリなfglrxをインストール

ubuntu 12.10も出ておりますが、12.04での作業。

既に何度かやっているが、バージョンアップ後にまた忘れそうなのでamd(旧ATI)のGPUドライバーのインストールを自分用にメモ。

ubuntuのリポジトリにも、fglrxとしてパッケージがあるが、amdから最新のものをインストールする。

自分の環境は、Fusion E-450で内蔵GPUは、AMD Radeon HD 6320となる。

  • まず、ubuntu公式のものは、躊躇なく削除

  • AMDからドライバのダウンロード

このサイトから最新のものをダウンロード。因みに自分は、amd64のOSをインストールしているので64ビット版をダウンロードする。

  • ダウンロードしたファイルを解凍する。

  • 必要なパッケージをインストールする

  • ubuntu用のパッケージを作る

  • 出来たパッケージをインストールする

  • xorg.confの初期化

  • 再起動する

で運が良ければ、プロプライエタリドライバで起動してくる。

  • fglrxinfoで確認

こんな感じ

fglrxinfoは、ssh接続からだとうまく行かないので実機でやる必要がある。

export DISPLAY=”:0″

をセットしとくとうまく行ったりしたが、実機でやるのが無難。

細かい設定は、amdcccleで行う。

ubuntu 12.04(Precise Pangloin)でPPPoE-Server

ubuntu 12.04(Precise Pangloin)で、PPPoE-Serverを建てる。

枯れた技術なので、他のバージョンでも、debianでも設定方法は変わらないと思う。

ルータなんかの設定をしていると、テスト環境でPPPoE出来たらいいなと思うことがしばしばある。

そんな時でもLinuxサーバが1台あれば、簡単にフレッツで提供されているような

PPPoEサーバを建てることができる。仮想環境で建てれば、仮想環境内でテストなんかが出来て非常に便利。

 

  • インストール

apt-getで一発

  • 設定

とりあえず require-pap だけ書いた。

 

  • 認証情報

ID: test

password: test

に、10.0.0.200のIPを渡します。って設定

  • PPPoEサーバの起動

eth0で起動して、自分は10.0.0.1で待ちます。って設定

あとは、eth0と同じネットワークにルータなりを繋いで
認証すれば接続OK。

サーバ側では、こんな感じになります。

eth0は、アドレス割り当てない方が良いのだろうけど
今回は使っております。

ubuntu 12.10 アップデート後にランチャーが消えた

Ubuntu 12.10(Quantal Quetzal)がリリースされたので、躊躇無くインストール。

見事不具合に遭遇した。

症状としては、ログイン後左側のランチャーや上部パネルが表示されない。

Alt + Tabの切り替えなども出来ず絶望的な状態。

「Ctrl + Alt + F1」でコンソールにアクセスして、

で、変数セットして

で、ターミナルを起動して、「Ctrl + Alt + F7」でGUIに戻って

ターミナルからなんとか、firefoxを起動してネットを見てたら以下のサイトにたどり着いた。

Unity missing? Can’t see top or side panels

とりあえず英語がよくわからないので、なんとなく雰囲気で以下を実行

一応雰囲気で、以下も実行

そして再起動後、なんとかランチャーなどが表示されるようになった。

radeonのプロプライエタリドライバの問題だろうか。

因みに自分の環境のlspci


ただランチャーのアイコンが、大きくなったり、自動で隠れなかったり
日本語フォントが変だったり、修正すべき箇所は多そうです。