2019-01-01から1ヶ月間の記事一覧
mmap: vm_area_struct の先頭を保持する。 mm_rb: メモリエリアを高速に探すための red-black tree を保持する。 mmap_cache: メモリ参照の局所生(locality)を生かして高速化するためのもの。 pgd: page global drectory へのポインタ。後述。 mm_users: 共…
pythonでCLIツールを作るときに表示系でターミナルサイズが知りたいとき os.get_terminal_size()もあるが今回はshutilを使った方法をご紹介 import shutil terminal_size = shutil.get_terminal_size() print(type(terminal_size)) # => <class 'os.terminal_size'> print(terminal_siz</class>…
dstatとは vmstatやnetstat、iostatの基本機能がまとまっている便利コマンド $ dstat You did not select any stats, using -cdngy by default. --total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai stl| read writ| recv…
Configfs カーネルオブジェクトの作成や設定や削除をファイル操作で行うことができる疑似ファイルシステムです。 ユーザー空間からカーネルオブジェクトを操作できます。通常/configにマウントします。 Debugfs カーネルのデバッグ用に開発された疑似ファイ…
CPU と PCI デバイスとは、両者で共有されたメモリにアクセスする必要がある。 そのメモリは、デバイスドライバが PCI デバイスを制御したり、それらの 間で情報をやり取りするために使用される。通常その共有メモリには、デバイスの コントロールレジスタや…
file_struct データ構造体は、プロセスがオープンしたファイルについて 記述するものである。 定義はinclude/linux/sched.hで定義されている。 struct files_struct { int count; fd_set close_on_exec; fd_set open_fds; struct file * fd[NR_OPEN]; }; プ…
straceコマンド straceコマンドはプロセスが呼び出すシステムコールを出力するコマンド straceを使うことで既に動いているプロセスのシステムコールなどもリアルタイムで表示できる。 またプログラムがエラーになった際の原因となる箇所の特定などにも使える…
Linux のプロセスは、task_struct 構造体というデータ構造で表現されている。その話についてのLT的資料です。 プロセスとは 実行中のプログラムのイメージ。機械語のプログラムがメモリに読み込ま れて「プロセッサ(CPU)」の実行の対象になったもの。 資源割…
背景 CaaSって言葉を最近見かける機会が多い。 なんとなく言葉から意味は察したが実際にどんな意味かを知りたくて調べてみました。
use strict まず最初に、perl のプログラムをデバッグするときに、デバッガを全く 使うことなく、人生を遥かに素直なものにするためにできることがいくつか あります。 それを示すために、"hello" という名前の、単純ですが問題を抱えたスクリプトを 示しま…
名前 perldebtut - Perl でのデバッグのチュートリアル 説明 perl デバッガの使い方の(とても) 軽量な紹介および、 perl プログラムの デバッグに関する、すでに存在するより深い情報源へのポインタです。 perl を毎日使っているのに、perl デバッガを使うこ…
func TestNetstatPlugin_FetchMetrics(t *testing.T) { type fields struct { Prefix string Extend bool } tests := []struct { name string fields fields want map[string]float64 wantErr bool }{ // TODO: Add test cases. } for _, tt := range tests …
dstat vmstat メモリやCPUを見る時に使う。 iostat ディスクIOを見るときに使う。 netstat ネットワークの状態を見るときに使う。
LISTEN 着信する接続をリッスンしています。 SYN_SENT アクティブに接続を確立しようとしています。 SYN_RECEIVED 進行中の接続の最初の同期をはかります。 ESTABLISHED 接続が確立しました。 CLOSE_WAIT リモートシャットダウンです。ソケットがクローズす…
ネットワークプログラミングの関数の流れ socket 関数は、ネットワーク上でデータをやりとりする時に必要な領域の確保を行います。 socket 関数で取得した領域は、close 関数で開放できます。 サーバのbind, listen, accept 関数は、セットで、クライアント…