地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

2019-01-01から1ヶ月間の記事一覧

【Linux】mm_struct は何してるか

mmap: vm_area_struct の先頭を保持する。 mm_rb: メモリエリアを高速に探すための red-black tree を保持する。 mmap_cache: メモリ参照の局所生(locality)を生かして高速化するためのもの。 pgd: page global drectory へのポインタ。後述。 mm_users: 共…

python ターミナルサイズ

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でサーバリソースのリアルタイム監視

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 カーネルのデバッグ用に開発された疑似ファイ…

PCI アドレス空間

CPU と PCI デバイスとは、両者で共有されたメモリにアクセスする必要がある。 そのメモリは、デバイスドライバが PCI デバイスを制御したり、それらの 間で情報をやり取りするために使用される。通常その共有メモリには、デバイスの コントロールレジスタや…

メモ:files_structの入り口

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コマンドはプロセスが呼び出すシステムコールを出力するコマンド straceを使うことで既に動いているプロセスのシステムコールなどもリアルタイムで表示できる。 またプログラムがエラーになった際の原因となる箇所の特定などにも使える…

【Linux】task_struct構造体について

Linux のプロセスは、task_struct 構造体というデータ構造で表現されている。その話についてのLT的資料です。 プロセスとは 実行中のプログラムのイメージ。機械語のプログラムがメモリに読み込ま れて「プロセッサ(CPU)」の実行の対象になったもの。 資源割…

【Docker】CaaS(Container as a Service)とは何だろうと思って調べた

背景 CaaSって言葉を最近見かける機会が多い。 なんとなく言葉から意味は察したが実際にどんな意味かを知りたくて調べてみました。

perl use strictの意味

use strict まず最初に、perl のプログラムをデバッグするときに、デバッガを全く 使うことなく、人生を遥かに素直なものにするためにできることがいくつか あります。 それを示すために、"hello" という名前の、単純ですが問題を抱えたスクリプトを 示しま…

perl cgi デバッグする

名前 perldebtut - Perl でのデバッグのチュートリアル 説明 perl デバッガの使い方の(とても) 軽量な紹介および、 perl プログラムの デバッグに関する、すでに存在するより深い情報源へのポインタです。 perl を毎日使っているのに、perl デバッガを使うこ…

gotestsAllで自動生成してテストを書く

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 …

linuxのstatコマンドとかまとめ

dstat vmstat メモリやCPUを見る時に使う。 iostat ディスクIOを見るときに使う。 netstat ネットワークの状態を見るときに使う。

TCPソケットの状態とか

LISTEN 着信する接続をリッスンしています。 SYN_SENT アクティブに接続を確立しようとしています。 SYN_RECEIVED 進行中の接続の最初の同期をはかります。 ESTABLISHED 接続が確立しました。 CLOSE_WAIT リモートシャットダウンです。ソケットがクローズす…

perl ネットワーク

ネットワークプログラミングの関数の流れ socket 関数は、ネットワーク上でデータをやりとりする時に必要な領域の確保を行います。 socket 関数で取得した領域は、close 関数で開放できます。 サーバのbind, listen, accept 関数は、セットで、クライアント…