ガベージコレクション(GC)
メモリ上の不要なデータを自動的に削除する仕組みのこと。Java仮想マシン(Javaシステムの実行環境)には標準で準備されている。ガベージコレクションという仕組みがあることで、開発者はメモリ上の不要なデータを消す処理をJavaシステムに組み込む必要がなくなり、開発の手間を減らせる。
ガベージ(ごみ)をコレクション(回収)してくれるという、なんとも覚えやすいネーミング。
似たような言葉で「メモリコンパクション」というものがあるらしい。
ガベージコレクションによってメモリ領域が解放されるものの、使える領域が細かく分割されている(断片化・フラグメンテーション)ため大きい容量のプログラムをメインメモリにロードできないときに、空き領域を一つの大きな領域にしてくれる方法のことらしい。
参考サイト
ガベージコレクション:Garbage Collection:研究開発:日立
ガベージコレクションとメモリコンパクションの違い – ITを分かりやすく解説
ヘッドレス
組み込み機器やサーバなど、本来対面で人が操作するためのものではない(または、その必要がない)システムで見られる運用形態のひとつ。コンピュータの場合、キーボード、マウス、タッチパネルなどの入出力機器を接続しない状態で運用すること、また、その状態で運用を行う機器を指す。
意味は分かるけどなんでヘッドレスっていうんやろ?何らかのボタンを押したら裏側でシェルスクリプトが走る、みたいなイメージやねんけど、頭って何?
調べてみる。
ヘッドレスの語源は?
ヘッドレスCMSとは?国産の開発者が語る背景、メリット、デメリット、従来のCMSとの比較まで | 導入実績5000社以上の国産エンタープライズ・ヘッドレスCMS
ところで、表示画面がないことをヘッドレスと言うのでしょうか? 諸説ありますが、パソコンのディスプレイが下記のように大きな時代にパソコンメーカーがディスプレイなしパソコンを「ヘッドレス・コンピュータ」として売り出したことから、表示部分の機能がないことを「ヘッドレス」と呼ぶようになったと言われています。パソコンのディスプレイが頭のように見えたのでしょうね。
ブラウン管みたいなディスプレイの箱を頭に見立ててたってことか。
自分のちょっと下の世代はあんなでかい立体のディスプレイのなんか存在すら知らないかもしれない……
Docker Desktop
WindowsやMacOSといったOS上で、Docker環境を構築できるツール。公式サイトからダウンロードした専用インストーラを実行することにより、これらOS上でDocker環境が使えるようになる。
コンテナってLinuxでしか使えないんじゃないの?なんでwindowsで使えてるの?と思って気になって調べてみた。
どうやらHyper-vというwindowsで使えるハイパーバイザーで仮想化を行い、その仮想化されたLinuxっぽい環境でコンテナを使用しているっぽい?
でもハイパーバイザーの上でコンテナ化してるなら、コンテナのホストOSとOS?カーネル?を共有することで軽くなっているというメリットをつぶしてない?って思った。あと、Hyper-vとWSLの違いが分からんかった。沼にはまりそうなので今日はここまで。
参考サイト
【入門】Docker Desktopとは何ができるの?インストールと使い方 – カゴヤのサーバー研究室
【イラストで分かる】windowsで動くDockerの仕組み
“dockerはLinuxでしか動かない”って色んな記事で見るけど、じゃあ結局WindowsやMacで docker使えてんのって何でなの?
Load Average
CPUが平均的にどれだけ多くのタスク(プロセス)を待っているかを示す指標。CPU(またはコア)は一度に一つのプロセスしか処理できないため、Load Averageがコア数以下であれば全てのプロセスが遅延なく処理されているといえるが、コア数を超過すると処理が遅延し、パフォーマンスが低下する。
ちなみに、プロセスの中身に存在するプログラムの単位がスレッドと言われるものになる。
プロセスとスレッドの仕組みもあんまり分かってない。調べれば調べるほどわからないことが増えて困る。
参考サイト
【Linux】負荷状況の把握(ロードアベレージ/loadaverage) | hirota.noの技術ブログ〜 It’s all over the network.
IOPS(Input/Output Per Second)
ハードディスクやSSDなどのストレージ(外部記憶装置)の性能指標の一つで、ある条件の元で1秒間に読み込み・書き込みできる回数のこと。
参考サイトによると、入力(インプット)とはシステムサーバからストレージにデータを入力すること、つまりデータの「書き込み」であり、出力(アウトプット)はシステムサーバがストレージ内のデータを参照すること、または別のストレージに移行すること、つまりデータの「読み込み」らしい。
データの転送ってIOPSとかスループットとか、さらにブロック数とかあってかなり混乱してしまう。
こいつらが初心者にもわかりやすくまとまっているような記事とかサイトとか知ってたらマジで教えてほしい。
参考サイト
IOPS(I/O毎秒)とは – 意味をわかりやすく – IT用語辞典 e-Words
ストレージの性能指標 IOPSってなに? | NetApp