ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

リソース使用率の測定とトラブルシューティング

リソース測定のコマンド

mac os の vmstat は vm_stat

CPU

システム全体
  • top
  • iostat
  • mpstat -P または mpstat -ALL
  • vmstat
  • sar -u | -P または mpstat -ALL
プロセス単位
  • top
  • ps u[ax]
Load Average (負荷平均)

物理メモリ

システム全体
  • top
  • free
  • vmstat
  • sar -r
プロセス単位
  • top
  • ps u[ax]

スワップ領域

使用状況
  • top
  • free
  • vmstat
  • sar -r
  • swapon -s
スワップイン・アウト状況
  • vmstat

ディスクI/O

  • iostat
  • vmstat
  • sar -b

ネットワークI/O

  • netstat -i | -s
  • sar -n DEV | EDEV

プロセスのPID

  • pstree -p
  • ps u[ax]
  • top
  • lsof

sar [オプション] [表示間隔(秒) [回数]]

オプション 概要
-P CPU番号 or ALL 指定したCPUの使用率
-r 物理メモリとスワップ使用量
-b ディスクI/O
-n DEV ネットワークI/O正常パケット
-n EDEV 〃 エラーパケット
-f データを取り出すログファイルを指定

I'll be back

4月も後半に入りました、あけましておめでとうございます。

いろいろあったけど、いろいろ我慢して本日データベーススペシャリスト試験を受けてまいりました。
出来栄えは、ジオン軍ガンダムに総攻撃を仕掛けて「やったか?!」といったところ。
つぎは頑張る。

エフスタ #efsta31

6/28(土)はエフスタ 福島市初開催でした。

天気はあいにくの雨。
参加者多数!弊社からは2人…名刺忘れた、社会人あるまじき失態…

エフスタ恒例の自己紹介

初参加者が多いように感じました。
Tokyoからの参加者もちらほら…
「初参加」と言いながら挨拶が皆さんお上手でびっくり。グダグダ喋ってすいません…

マイクロソフトエバンジェリストが語る 最新ハイブリッドクラウドの現状」

マイクロソフト エバンジェリスト 高添氏 による、最新ハイブリッドクラウド

メモ、時間を見て見直します。。

パブリックなクラウド  ×  パーソナルpc
Aws. 監視 管理ソフトとしてのms
microsoftの今 ビルゲイツ  〜   つぎの社長
モバイルファースト クラウドファースト   
デバイスセントリックではない。Uiを合わせる!
クラウドファースト…サービスを限定できる。ライセンス販売で受け皿
iot  micrsoft azure intelligent systems サービス
スカイプによる自動翻訳!
このへんから技術talk
データセンター 東京ドーム4個分の敷地w
いつでも会社に戻せるクラウド。
  人前は緊張するけど、場数
クラウドと共に進化したものが勝つ!
レイヤーをあげるとサーバがファイルになる。パブリックのクラウドで動いているサーバはただのファイル。
社内osもアジュールも一覧、デモ :アジュールサーバを社内サーバにコピー。コピペで終わり!
あじゅーるじょうでネットワーク構築、利用者にとっては社内ネットワークの延長。
hyperーv 、あじゅーるのベース。hyperーvはmicrosoftのコア。数ヶ月単位でアップデート。linuxも動く!
vhdファイル…
災害対策 アジュールサイトリカバリ 、クラウドにコピーしておいて何かsったらそっちで動かす
アジュール上でサーバを作ると3つのファイルができる。3つのコピー、2つまでは壊れても大丈夫。
アジュールは東と西で2つのデータせんた。にしとひがしで計6つファイルができる。
アジュールストレージサービス
クラウドから学ぶアーキテクチャ。データはファイルサーバにおいてストレージを安く。依存度を極力減らす!ファイルをおくだけのストレージを実現!!!階層化ストレージ?処理はsadでうけて、通常データはhddに。
ウィンドウズをストレージosに!200万iops !バーチャルデスクトップクラスター。フラッシュストレージなら省電力も。ネットワークが10ギガないとつかえない。ネットワーク命。シンクライアント?

聞きたい!クライアント端末の行く末… → 呑み会の追記:シンクライアントでは RDP が動作するグラフィック関連の性能さえあれば十分になる。

アジュールジョウニ仮装ネットワークを作る?!オーバレイネットワーク。オープンフローとはどう違う?ietfにドラフトが上がっている。nvgreのすべて  既存ネットワークで動く!
ネットワークの新しいプロトコルを作る試み。
クラウドコントローラ  物理サーバを減らす!  クラウドati  社内でパブリックなクラウド的なことをヤる。例えば。。。  アジュール=パブリックなクラウド。
ぽちぽち選択して作成ボタンを押下、あとはリモートでつないで捜査。
同じことを車内でも!アジュールのインターフェースは良くできている。アジュールパック!無償提供!!あじゅーるないで動くosのライセンス料は?ネットワークの分離もできるの?
vdi  バーチャルデスクトップなんとかストラクチャー  ブラウザからシステムにアクセスすると、、、サーバ上で動く。端末にデータをコピーせずに動く!
リモートデスクトッププロトコル  ica  3g回線でもスイスイ動く!
アジュールリモートapp. ローカルで動いているようにしか見えない!
社内システムの認証は大変だけど、クラウドは認証基盤があるから楽。
devops  ビジネスとアプリケーション  クラウドアプリケーション監視  システムセンター  処理間の遅延まで補足してくれる。。net、javaに対応。開発ツールから見れる!visialstadio で仮装マシンが作れるw
powershell、ドスプロンプトとどう違うのか…
ビッグデータ  びじいねすいんてりじぇんす  びじねすあ  インターネット上のデータ、各種データベース。エクセルで持ってこれるww  フロントエクセル

クラウド化してデータを集めてみたら思ったよりものすごい連携が出てきた。。microsoftでもつながりが生まれた!


質疑応答:1ギガ1円、1分2円〜10円くらい。簡易見積もりサイトもあるよはーと

typescript 入門

15分で!
javascript上位拡張言語
typescriptは発音しずライ
C#やってる人はとっかかりやすい!

40フェニックスって何? → 懇親会でも聞けずに終わっちゃった…教えてエロい人




Kinectの基本と事例と体験詰め合わせパック

Kinect 基本と事例と体験
今日はエンジニアが少ない
デジタルサイネージ、でかいディスプレイ
サンリオでふわふわドレス
バージョン2は心拍数もとれる!
センサープログラミング


!!!おやつタイム!!!ももケーキよしえさん。jp

キラリのバームクーヘン、麦せんべい、etcetc

定年ってなんだ

さいとーーー!
技術者35歳定年説 コスト、体力…
心が折れるしれん 新人研修の終了、はじめのプロジェクト、デスマーチ、35歳、プログラマーキャリアに対する圧力、不安、デスマーチ、40歳、意外にまだ行ける。
終わらないプロジェクトはない!

パネルトーーーク (自分自身への啓発メモ)

①itのどこが楽しいか?
  1. くりえいてぃぶ、コード
  2. すぐに変わる 伝えることがたのしい、進化が止まらない
  3. 業界がつながる
  4. 書いた通りに動くこと
②涙した話
③目指すべき先は?今後の野望
  1. 不労所得
  2. itを教養に
  3. 裏方。 宗教にたどり着く?裏方、縁の下の力持ちになりたい
  4. 野望はない。楽しく プラスワンで何かを伸ばす
④ライバルと思っている人、物、概念は?
  1. 自分
  2. 固定観念と大久保さん itと文化的な営み LTを待て
  3. たかぞえxx 検索ランクで負けたくない
  4. 自分が最強! 競争ではない。
⑤いま一番気になっている技術
  1. xaml、業務系ui
  2. 空間に映像を投射 エロい
  3. リアルタイム翻訳
  4. 自然に身につけられるモノがit化

LT

撃沈。
PostgreSQL最高!



懇親会

福島市民、暴走。

Ubuntu 無線Lan がなまら遅い(速度にムラがある)ときの対処

答え

http://fecot.blog.fc2.com/blog-entry-10.html
助かりました。

ネットワークに繋がってるけど繋がらない原因は、
無線LAN子機のパワーマネジメント機能のせいでした。
有線LANならすんなりネットワークに接続できたハズ。

以下、作業内容をメモ。

①ターミナルを立ち上げる
②iwconfig コマンドにて無線LANインタフェースを確認
$ iwconfig
eth0      no wireless extensions.

lo        no wireless extensions.

wlan0     IEEE **********  ESSID:"**********"  
          Mode:Managed  Frequency:2.412 GHz  Access Point: **********   
          Bit Rate=54 Mb/s   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=65/70  Signal level=-45 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:3597  Invalid misc:3190   Missed beacon:0
③パワーマネジメント機能を Off にするコマンドを作って実行
$ sudo vi /etc/pm/power.d/wireless
#!/bin/sh
/sbin/iwconfig wlan0 power off

$ sudo chmod 740 /etc/pm/power.d/wireless

$ /etc/pm/power.d/wireless

以上。enjoy!



経緯

旧XP端末に Ubuntu 14.04 desktop 64bit 版をインストールし、
インターネットにつなぐべく、
Windowsで使っていた ワイヤレスLan 子機(AirStation G54) を突き刺したあとのお話。


Linux版のドライバを探さないとな〜と思ったら、USBを刺しただけで認識してくれたので拍子抜け。
デスクトップ右上に Wifi アイコンが表示され、
幸先良いなと思って接続を試みるも、自宅内のルーターにすら接続できない。
とりあえず ping を打って状況を確かめるか〜と思ったら、ターミナルの上げ方がわからない…

[Ubuntu14.04] ターミナルを立ち上げる方法

  1. 左上にある Ubuntuマーク(コンピュータとオンラインリソースを検索) を押下。
  2. 検索窓に「ta」と入力すると検索結果に「端末」アイコンが表示されるのでクリック。
  3. 晴れてターミナルが上がります。


ターミナルさえあれば何でもできる。GUI操作など糞食らえだ!!

ということで無線LAN親機に ping を打ってみる。

$ ping 192.168.0.1
...
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
64 bytes from 192.168.0.1: icmp_seq=857 ttl=64 time=17.0 ms
64 bytes from 192.168.0.1: icmp_seq=858 ttl=64 time=3167 ms
64 bytes from 192.168.0.1: icmp_seq=859 ttl=64 time=2186 ms
64 bytes from 192.168.0.1: icmp_seq=861 ttl=64 time=272 ms
64 bytes from 192.168.0.1: icmp_seq=862 ttl=64 time=3554 ms
64 bytes from 192.168.0.1: icmp_seq=863 ttl=64 time=2570 ms
...

繋がったり繋がらなくなったり。
WEPパスワード間違えたかな〜とかいろいろ疑ったけど、時々は接続できているので物理的な問題なのかソフト的な問題なのかも検討つかず。

いろいろ無駄な調査を続けた後、「ubuntu wifi 遅い」で検索したところ、そのまんま答えに辿り着きました。

Ubuntu 11.04 無線遅い・・・だが治す!(追記)
http://fecot.blog.fc2.com/blog-entry-10.html

以下、記事のタイトルに戻る。

Windows XP マシンに終止符を打つべくUbuntuをインストールしようと思ったら、

手元には700MbのCD-Rしかない。
だったらブート用にUSB潰してしまえーと思ったけど、「isoファイルをUSBに焼く」方法がわからず苦労。

これだとUSBブートになってしまう。

これがイメージに近いけど「usb-creator-gtk」なるアプリを経由するらしい。
usb-creator-gtkを使うにはUbuntuが必要…なにこのジレンマ


夜が明けてきたところで「isoファイルをUSBに焼く mac」でググれば良いことに気づき、
Qiitaでそのまんまのページを発見。

今回の敗因は、目的に対する適切な検索語が浮かばなかったこと。
要求:WindowsマシンのOS を Linux(Ubuntu) に変更するための環境を Mac で揃える
条件:長期利用を鑑み、LiveCDやUSB-Linuxではなく、HDDにインストールする。
必要な手順:

  1. isoファイルをダウンロード
  2. isoファイルを媒体(USB)に焼く
  3. 対象端末でUSB Bootし、インストール


と、ここまで整理してからUbuntuUSBメモリに焼く作業に戻る。


何も考えずに最新版64bitのisoを取得。無謀な行動をとって失敗したほうが学ぶことが多いので無問題。

$ hdiutil convert -format UDRW -o ubuntu.img ubuntu-ja-14.04-desktop-amd64.iso 
Master Boot Record(MBR:0) を読み込み中...
Ubuntu 14.04 ja amd64           (Apple_ISO:1) を読み込み中...
(Type EF:2) を読み込み中...
Ubuntu 14.04 ja amd64           (Apple_ISO:3) を読み込み中...
...............................................................................
経過時間: 1m  2.774s
速度:17.6M バイト/秒
節約率:0.0%
created: ubuntu.img.dmg

$ mv ubuntu.img.dmg ubuntu.img

$ diskutil list
...
/dev/disk1
...

$ sudo dd if=./ubuntu.img of=/dev/disk1 bs=1m
...長い...

結局usb2.0のポートで4時間くらいかかりました。。
インストールは明日かな…

玉砕中

javascript、やれば出来るだろうとかタカを括ってました。
jsonpの使い方がイマイチ理解できない…

node.jsでjsonファイルの読み込みは ”require" でOK

http://qiita.com/_shimizu/items/db463c1ce94a4ca4659f

  • test.json
{
   "J":5,
   "0":"N"
}
  • load_json.js
var json = require('./test.json');
console.log(json);
  • 実行結果
$ node load_json.js
{ '0': 'N', J: 5 }

なら jsonp もイケる?

  • test2.json
callback(
  {
   "J":5,
   "0":"N"
  }
);
var json = require('./test2.json');
console.log(json);
  • 実行結果
$ node load_jsonp.js

module.js:483
    throw err;
          ^
SyntaxError: test.json: Unexpected token c
    at Object.parse (native)
    at Object.Module._extensions..json (module.js:480:27)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (load_jsonp.js:1:74)
    at Module._compile (module.js:454:26)
    at Object.Module._extensions..js (module.js:472:10)
    at Module.load (module.js:356:32)

jsonp は無理でした。

node.js で読み込む場合の callback(〜); の扱いがワカラナイ…

ITpro EXPO 2013

ひょんなことからITpro EXPO 2013に参加できそうな気配。
が、なんかサイトが見辛いので、自分用に情報を抽出してみる。

出展企業がわかりにくい。

時間的制約からセミナーに参加するのがムツカシイので、ブースを攻めることを画策。

全部興味あるけど、どこに何があって何をやっているのか、フラットに並べたいけど一覧される画面が(ぱっと見て)見当たらない。出展社一覧が小間番号順にソートできればフロアマップと照らし合わせやすいんでね〜かな、と思い立ったが吉日。
https://exponet.nikkeibp.co.jp/itev2013/exhibitor/company_index.html を見たら、出展社情報は json ファイルを読み込んでいるらしいのでとりあえず手当たり次第 GET。

curl でダウンロード

$ curl -f -k https://exponet.nikkeibp.co.jp/itev2013/exhibitor/itev/list/ja/company/[1-500].json -o "#1.json"

欠番があるらしく 、1〜500まで回して 262件という結果になりました。
262件のjsonファイルをマージしてリストを作れば良いんじゃね?ということでなんか良い方法ないかなー。

スマートな方法が思いつかないので jsonデータから必要項目を抜く ajax を作ってみた。

index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title>一覧</title>
<script type="text/javascript" src="jquery-2.0.2.min.js"></script>
<script type="text/javascript" src="jsrender.js"></script>
<script type="text/javascript">
var docurl = './json/';
$(function () {
    $('#tbl').append('<table border="1" cellspacing="1" cellpadding="1">');
    for ( var x =0; x < 500; ++x ) {
        getData(x);
    }
    $('#tbl').append('</table>');
} );
function getData(id) {
    $.ajax ( {
        dataType: 'jsonp',
        jsonpCallback: 'callback',
        url: docurl + id + '.json',
        async: false,
        success: function (json) {
            $('#tbl').append(
                $('#tpl').render(json)
            );
        }
    } );
}
</script>
<script id="tpl" type="text/x-jsrender">
<tr>
<td>{{:ID}}</td>
<td>{{:booth_number}}</td>
<td>{{:exhibit}}</td>
<td>
{{if url}}<a href="{{:url}}">{{/if}}
{{:contact_name_ja}}
{{if url}}</a>{{/if}}
</td>
<td>
<b>{{:catch}}</b><p>{{:summary}}</p>
</td>
<td>
{{for service}}
<b>【{{:title}}】</b><p>{{:summary}}</p>
{{/for}}
</td>
</tr>
</script>
</head>
<body>

<div id="tbl"></div>

</body>
</html>

ブラウザ上に一覧したけど、ソートとか加工できないと意味ないな…

考え中