はてなキーワード: 仮想マシンとは
Dockerは、開発から運用まで一貫した環境を提供することで、開発者の作業負担を減らすという大きな利点があります。また、仮想マシンと比較してリソースの使用効率が高いため、エコとも言えます。
ただし、確かにDockerには一定のオーバーヘッドが存在します。これは、DockerがゲストOSを持たずに、ホストOSのカーネルを共有して動作するためです。それにより、アプリケーションの実行に必要なリソースが追加で必要になり、パフォーマンスに影響を及ぼす場合があります。
また、Dockerを利用する際の設定や構成によってもパフォーマンスは大きく変わります。例えば、Dockerのネットワーキングやストレージの設定、またホストOSとの互換性など、考慮すべき要素は多数存在します。
あなたの現在の状況について具体的に述べると、FESSのクローリングが重いという問題は、Dockerのオーバーヘッドだけが原因ではない可能性があります。Dockerコンテナ内のFESSやJVMの設定、ホストマシンのリソース割り当て、ネットワークやストレージの設定など、様々な要因が絡んでいるかもしれません。
また、Dockerのログ出力が多いと感じる場合も、実際のところはFESSやDockerの設定によるものかもしれません。ログの出力レベルを調整することで、必要な情報だけを出力するように設定することも可能です。
しかし、これらの設定を調整するためには一定の知識と経験が必要で、それがなければ素直にネイティブ環境での構築が良い選択かもしれません。結局のところ、どの方法が最善かは具体的な要件や状況によります。
このような状況に直面した際には、パフォーマンスの問題を具体的に分析し、適切な解決策を見つけるためにパフォーマンスモニタリングやロギングツールを使用することをお勧めします。それにより、問題の原因を特定し、適切な対策を講じることが可能になります。
たとえば、Dockerが高いCPU使用率を示している場合、それはコンテナ内のアプリケーション(この場合はFESS)が高いリソースを消費している可能性があります。その場合、アプリケーションの設定や実行パラメータを調整することで改善できるかもしれません。
また、Dockerコンテナのリソース制限を調整することも検討できます。Dockerは、コンテナに割り当てるCPUやメモリの量を制限する機能を提供しています。これにより、他のプロセスに影響を与えることなく、特定のコンテナのリソース使用量を管理することが可能です。
さらに、Dockerのボリュームやネットワーク設定が適切であるかを確認することも重要です。不適切な設定はパフォーマンスに悪影響を及ぼす可能性があります。たとえば、ファイルI/Oのパフォーマンスは、ホストOSとコンテナ間でデータを共有する方法に大きく依存します。そのため、適切なボリュームの設定や、パフォーマンスを向上させるための最適化オプションが適用されていることを確認することが重要です。
最後に、Docker自体のアップデートもパフォーマンス改善に寄与する場合があります。最新のDockerエンジンには、パフォーマンスを改善するための修正や改善が含まれていることがあります。
これらの要素を考慮に入れ、Dockerのパフォーマンスを最適化する方法を探すことができます。ただし、これらすべてを試してもパフォーマンスが改善しない場合や、必要な知識や時間が不足している場合は、Dockerを使用しないネイティブな環境での構築が最善の選択であるかもしれません。
注意することは、Linuxを入れたディスクは、Windowsの「コンピュータの管理 -> ディスクの管理」でオフラインに設定して、Windowsからはアクセスできないようにすることと、拡張セッションの設定がやや厄介だということかな
俺は、UEFIから起動してSSDにLinuxをインストールし、Hyper-Vで仮想マシンを作ってその物理ディスクを接続して利用してるけど、
最初からHyper-Vで新規インストールしても、UEFIから直に起動できるLinux環境はできるんじゃないかと思う。保証はできないが
LinuxでもVSCodeは使えるので、開発環境はLinuxに収斂する
SSDを増設してLinuxをインストールすれば、UEFIから直に起動することもHype-V上で物理ディスクを使用した仮想マシンとして認識することもできるLinux環境の出来上がり
なるべく手持ちのPC(以下、ホストPC)の環境をレジストリとか環境変数とかで汚したり悩まないよう
Windows10 ProとWSL2とVSCodeとDockerでやる感じかな
UnityとかVisual StudioとかintellijとかAndroid Studioを使う場合はどうしようもないので諦める。
Android開発はVSCodeでビルドはコマンドラインでとかはできそうだけど。
あとはUSBなどでシリアル接続する必要のあるarduinoとかもちょっと難しいかもしれない
これが基本的なところだけど、WSL2をホストPCに入れるので若干汚れるのとWSL2上のlinuxも同じく汚れるところ
Hyper-VでWindowsの仮想マシンを作ってそのうえでWSL2を動かすのが一番汚れずクリーンに使えそう
ただRyzenとWindows10の組み合わせだと、Hyper-Vの入れ子ができないので仮想マシン上のWSL2は動かないらしい。
Windows11だとできる
手元じゃないのでクリーンに使えるが、ビルドなどはリモートのスペックに依存
そこをよしとすれば楽そう
教えてください。
定期的に迷惑メールが来るので、フィッシング詐欺に引っかからない自信はある。
まあ、ほとんどの人はそう思いながら詐欺に引っかかっている人が一定数いるのが現実だけど。
そんなバハマ……バカなと思うかもしれない(私も思っている)が、ネット上では個人情報だとかクレカ情報を入力してしまった、という体験談はちらほら見かける。
こういう書き出しだとこれから私が詐欺にあった内容を書きそうになるけど、実際はその逆で適当な情報を入力して遊んでみようとの試みである。
迷惑メールの内容を端的に説明するとAmazonを騙って「あなたではない他人が注文したので見覚えが無ければキャンセルしてください。」という感じ。
迷惑メールを見分ける方法はググれば山のようにあるので省略するが、簡単に見分けられる程度の内容だった。
不用意に迷惑メールの「注文をキャンセル」とここをクリックしてくださいと言わんばかりの部分を馬鹿正直にクリックすると本物そっくりのログインページが表示された。
面白いことにパスワードの入力部分が全角文字の入力に対応しており、とりあえず「天安門事件」と入力しておいた。
こういう詐欺は中国系が多い(偏見)ので、居酒屋でとりあえずビールを注文する感覚で天安門事件と入力するのである。(台湾や香港問題も有効と聞くがその辺りは有識者に問いたい)
当然ながら、本物のAmazonのサイトであればメアドやパスワードは全角を対応している訳がないし、適当な情報を入力したらログインできずに再入力を促されるが、偽サイトなので無事に(?)ログインできた。
「セキュリティ上の観点から本人確認のために個人情報を入力してください」と、それっぽい理由で名前や住所などの個人情報を入力させてくるが、明らかな偽サイトで入力する意味がないのは明白なので偽情報を入力する。
こういう時に環境依存文字だとか特殊なことをして相手の個人情報のデータベースを滅茶苦茶にできれば良いのだが、私にはそんな知識も技術力もないので物量作戦として大量の文字列を入力する暴挙に出た。
郵便番号のように字数が決まっているものについては入力制限があったが、住所については上限が無かったのでコピペしまくって無意味な文字を入力した。
おそらく数メガバイト分の文字を入力できたと思うが、ブラウザの方が若干だが重くなり、文字が表示されるのに時間がかかるようになってきたので、次のページへ移動した。
おそらくこれが本丸だと思うが適当な情報を入力して遊ぶので、当然のように存在しない情報を適当に打ち、一通り入力が完了して送信したら403エラー、つまりアク禁で見れなくなったのでゲームオーバー。
偽情報が原因なのか、元からエラーが出る仕様なのか分からないが、どちらにしても不用意に偽サイトにアクセスしない方が良いと思いました。(子供みたいな感想文)
間違った内容&飛躍してる文章が書籍に混ざりこんでることは多々あることなので、今回のことが特別なことだと感じなかった
今回のことを見ていてむしろ驚いたのは、自分の解釈が絶対的に正しいと断言する人が多数いたこと
文章って、批判的に読みかつ自分の解釈に対しても批判的になるものだと思うけど、Twitterでは本の内容が誤りだと即断していた
「TCP/IPはGAFAに独占されている」と言われた場合、まっさきに思うことは「そうだっけ?」なのは確かだけど、もしこの文章が正しいとしたらどういう意味で言っているのだろうか、という問いを立てて解釈を試みるものだと思う
たとえば、トラフィック量で換算すると確かにGAFAが独占しているかもしれないからそのこと言っている?とか、
あるいは、グーグルのBGP設定ミスで通信障害が発生したことあるけど、グーグルのもつASにインターネットが依存してるってことを言ってる?とか、
あるいは、次のTCPと言われるQUICはグーグルが開発したものだし、そういうことを言ってる?とか
「ブロックチェーンはプロトコル」と言われた場合も、これは通信プロトロコルではなく、プロトコルの原義である外交儀礼や条約のことを指してる?とか
「イーサリアムはOS」というのも、単一の物理マシン上で動くOSのことなのか、あるいは仮想マシン上で動くゲストOS的なものなのか、あるいはロボットOSでいうところのメタOS的なことなのか?と色々と解釈できる
技術書といえど言葉足らずな表現は多々あるので、それは自分で補って読むものだと思ってたから、今回の騒動は興味深かった
恐らく、Web3に対してヘイトが溜まっていて、それが表出したに過ぎないのだろう
OSというと、基本的にファイルシステム、GUIないしCLIインターフェース、ネットワーク通信(はまだなくてもいいか?)、その下にあるハードウェアの制御などが機能としては一般的なものになると思うけど、少なくとも今そこまで出来ているとは考えにくいな。
この辺見る限り、スマートコントラクトについては合っていそうだけど。
https://ethereum.org/ja/developers/docs/smart-contracts/
イーサリアムのアドレスにあるということなので、これをメモリアドレスと見なしているのだと思うが、現在の定義ではOSは上でハードウェアの制御と書いたように基本的には単体の物理マシン上にインストールされるもの(仮想マシンの場合はハードウェアを下のハイパーバイザがエミュレートしたりバイパスしたりするはず)なので、分散システムであるブロックチェーンとは相性が悪いんじゃないかな。
少なくとも、イーサリアムのスマートコントラクトを自分のマシン上に持ってくるために、OSの下にネットワーク通信が出来る「何か」が存在する必要があるのでは?現在これはOSが担う機能なのだけど。
言ってることはなんとなく分からないでもないけど、少なくとも現時点で広く認知されている「OS」になるとはあまり思えないな。
「ブロックチェーン=仮想マシン」ではないです、適当なこと書きました
さらに適当なことを書き連ねますが、ここでいう仮想マシンとはVMwareとかの仮想マシンではなく、Javaの実行環境であるJVMとかのような仮想マシンです
イーサリアムのスマートコントラクトはEVMという名の仮想マシンで実行されるけど、その仮想マシンは、ブロックチェーンというOS上に載っている、という認識です(詳しい人が読んだら怒られそうな認識だけど)
※もちろん実態としては、マイニングマシンはLinuxやWindows機であり、EVMを含むマイニング用のクライアントはこのOS上にインストールされますが、概念的には、という話です
そうじゃなくて支障があると言ってるなら土に埋めよう
「NEC社内で利用しているVDI環境の場合、これまでは仮想マシン1台当たり4GBのメモリ割り当てで十分でした。ところがビジネスチャットやWeb会議ツールを頻繁に利用するようになると、4GBではアプリケーションの起動が遅くなったり、Windows全体のパフォーマンスが落ちたりするようになったのです。メモリが足りなくなるとメモリスワップが発生し、SSDを利用していてもパフォーマンスが落ちてしまいます。ユーザーからも『メモリを増やしてほしい』との要望が増え、メモリ割当量を標準で4GBから8GBに拡張しました」