05
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--
calendar_bottom
RSS | ATOM | ADMIN

badulog

日々の覚書と雑記
ENTRY TOP
スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | - | - | - |
ENTRY BOTTOM ENTRY TOP
[emacs] find-fileのデフォルト
 emacsというかxyzzyで、findfileの最初のパスをデスクトップにしたかったので・・

;;; 起動直後のfind-fileのパスをデスクトップにする
(cd "C:/Documents and Settings/xxxxxx/デスクトップ/")

を追加したらできた。

baduizm | emacs | - | - | - |
ENTRY BOTTOM ENTRY TOP
[linux]fork後のCopyOnWrite共有

/proc/[pid]/smaps (Linux 2.6.14 以降)
このファイルは、そのプロセスの各マッピングのメモリ消費量を表示する。 マッピングのそれぞれについて、以下のような内容が表示される。
08048000-080bc000 r-xp 00000000 03:02 13130      /bin/bash
Size: 464 kB
Rss: 424 kB
Shared_Clean: 424 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB

最初の行には、 /proc/[pid]/maps で表示されるマッピングと同じ情報が表示される。 残りの行には、マッピングのサイズ、現在 RAM 上に存在するマッピングの量、 マッピング内の共有ページのうちクリーンなページ数、ダーティなページ数、 マッピング内のプライベートページのうちクリーンなページ数、 ダーティなページ数、を示す。

このファイルが存在するのは、カーネルのコンフィギュレーション・オプション CONFIG_MMU を有効にした場合だけである。

↑Man pageof PROC

fork後、CopyOnWriteでcopy前の共有時点ではSharedになって、
書きこまれて実際にcopyされるとPrivateになる模様。

参考)
http://d.hatena.ne.jp/naoya/20080212/1202830671


baduizm | linux | - | - | - |
ENTRY BOTTOM ENTRY TOP
[linux] ログアウトしてもコマンド続行 - nohup
アドレスいっぱい付与しているマシンに、リモートでログインしている時に、
  /etc/init.d/network restart
すると、
今、自分がログインしているアドレスが削除されて、再度付与されるまでに
時間がかかる。

その間に、sshセッションが切れて network restartしているプロセスも途中で終了している模様。
(ログインしているインタフェースの順番によっては、
 ssh(クライアント??)のタイマ内にセッション復活することで
 network restartが最後まで走ることもある)

おしりに&つけても、ちょっとマシになる程度だったので、
色々調べて・・nohup

 nohup /etc/init.d/network restart

これでsshセッションが切れても、network restart自体は最後まで走ってくれて、
再びログイン可能になる。



baduizm | linux | - | - | - |
ENTRY BOTTOM ENTRY TOP
[perl] 出力のバッファリング
 perlのprintはデフォルト、バッファリングする模様。
嫌ならsyswriteを使えとのこと。

syswrite FOUT,$data,length($data);

↑が基本、
もう一個第4パラにオフセットも指定できて、
途中からも出せる。


baduizm | perl | - | - | - |
ENTRY BOTTOM ENTRY TOP
[SIP] EarlyDialogとは
 
つまり101〜199応答を受信した状態のダイアログのこと。
この仕様では、(リクエストがINVITEだった)To tagを持つ2xx応答および101から199応答のみがダイアログを確立するだろう。
リクエストに対する非最終応答で確立されたダイアログは、earlyステートにあり、それはearlyダイアログと呼ばれる。


baduizm | おしごと | - | - | - |
ENTRY BOTTOM ENTRY TOP
[emacs] php編集時の最低限の.emacsとphp-mode導入
■ php-mode 導入
$ sudo apt-get install php-mode
で一発。これで
./emacs/site-lisp/php-mode
./emacs/site-lisp/php-mode/php-mode.el
./emacs/site-lisp/php-mode/php3-mode.el
とか、
./emacs22/site-lisp/php-mode
./emacs22/site-lisp/php-mode/php-mode.elc
./emacs22/site-lisp/php-mode/php3-mode.elc
が入った。

■ .emacs設定
(load-library "php-mode")
(require 'php-mode)

;;php-modeのタブ設定
(add-hook 'php-mode-user-hook
'(lambda ()
(setq tab-width 4)
(setq c-basic-offset 4)
(setq indent-tabs-mode nil)))

起動時にphp-modeをロードすることと
php-modeのロードをフック(トリガ)として、
設定する変数を書いたって感じか。
どんなhookがあるかとか、ロードの仕方とかは
php-mode.elに書いてある。

あと、.emacsについてはここが詳しい。
baduizm | emacs | - | - | - |
ENTRY BOTTOM ENTRY TOP
[linux] ubuntuでhappy hacking
virtual boxでubuntu on Vistaって環境。
どうも"}"が打てなかったのでキーボード設定。

システム->キーボードから
「Fujitsu」を選択。
んでから"happy hacking for mac"を選ぶと割とうまくいった。

baduizm | linux | - | - | - |
ENTRY BOTTOM ENTRY TOP
[linux] オープン可能なファイル数
TCPコネクションの数の限界とか調べる上で,
すなわちファイルディスクリプタの限界

■まずシステム全体の話
[/proc/sys/fs/file-max]
   オープン可能なファイル数の上限。値の変更を行うことも可能。

[/proc/sys/fs/file-nr]
  次の3つの情報を確認することが可能です。
   1. オープンされているファイル数
   2.「確保はされているけれど, 今使われていないぶん」
    3. オープン可能なファイル数の上限(/proc/sys/fs/file-max と同じ値)

ref)
http://search.luky.org/linux-users.8/msg01382.html


■プロセスごとは
ulimitだな.-n


-a 設定されている各種の制限を表示する
-c プロセスがファイルへコア・ダンプする容量を最大Nブロックに制限する
-d プロセスのデータ領域のサイズを最大Nキロ・バイトに制限する
-f 出力ファイルのサイズを最大Nブロックに制限する
-l メモリーにロックできるサイズを最大Nキロ・バイトに制限する
-m メモリーの使用量を最大Nキロ・バイトに制限する
-n ファイル・ディスクリプタの数を最大N個に制限する
-p パイプのサイズを最大N×512バイトに制限する
-s スタック・サイズを最大Nキロ・バイトに制限する
-t CPU時間を最大N秒に制限する
-u ユーザー1人が起動できるプロセス数を最大N個に制限する
-v シェルが利用できる仮想メモリーを最大Nキロ・バイトに制限する
-H いったん設定した制限を解除できなくする
-S -Hで制限した最大値以内の値を設定する
-t コマンドの型を表示する
baduizm | linux | - | - | - |
ENTRY BOTTOM ENTRY TOP
[linux]ページキャッシュとバッファキャッシュ再考
ページキャッシュとバッファキャッシュについてもう一度考えてみる.
前の記事
http://baduizm.jugem.jp/?eid=83


全体的に間違ってる気がするので、削除。


今のところ、以下のような説があるけど何が正解かは不明。
(a) 単純にi-nodeとかdentryなどメタデータのキャッシュがバッファで、ファイルのキャッシュがページキャッシュ
(b) ブロックデバイスファイルを扱うときに使うのがバッファ。
(c) ユーザ側がページで、デバイス側がバッファ。


■全体的なお話
(1)構造的には
+--------------+
| system call |
+--------------+
| page cache |
+--------------+
| buffer cache |
+--------------+
| disk |
+--------------+

(2) 昔は
上記のような感じでなく,並列なイメージで
readはページキャッシュ,writeはバッファキャッシュだったらしい.
今は,r/wともページキャッシュ→バッファキャッシュ.

(3) イメージとしては
1. ページキャッシュ探しに行く.ヒットすれば終了.
2. バッファキャッシュ探しに行く.ヒットすれば終了.
(これは誰が主語か?これで見つけたらページキャッシュにも残るはず)
3. なかったらディスクIOが発生してバッファキャッシュに引き上げるのかな.

(4) 両方とも
実体はハッシュで実装されてる

■ ページキャッシュって
(1) free,topで言うと"cache"で表示される
(2) いわゆるキャッシュのイメージどおりで理解しやすい
(3) ファイル丸ごとでなく,ページ単位でキャッシュする.
ページ = 仮想メモリの最小単位 = カーネルがメモリを扱う時の最小単位
(4) (ページキャッシュは,というかページは)i-nodeとファイルオフセットでアクセス

■ バッファキャッシュって
(1) free,topで言うと"buffer"で表示される
(2) なんか良くわからん
(3) バッファは固定サイズ(たとえば、512 バイト)
(4) デバイス識別子とブロック番号でindexされる
目的はデータブロックを素早く見つけ出すため





baduizm | linux | - | - | - |
ENTRY BOTTOM ENTRY TOP
thunderbirdが「このフォルダは処理中です」ってなったら
C:¥Documents and Settings¥xxxx¥Application Data¥Thunderbird¥Profiles¥xxxxxx¥Mail¥yyyyy

配下のpopstate.datみたいな名前のファイルを削除
たぶん,これがロックファイルみたいになってて,握りっぱなしになってる.

baduizm | その他tips | - | - | - |
ENTRY BOTTOM