Ubuntu【OCI/GCP/AWS】メモリ1GBの無料インスタンス生活にはスワップメモリが必要メモリ1GB無料インスタンスは太っ腹......だけど1GBでも足りない😭クラウドの無料インスタンスを利用している方の用途は、だいたいWordPressなどを用いた個人サイトかと思います。最近はメモリ1GBの無料VMが各社から提供されるようになり、個人サイトの運営はだいぶ楽になりました。LightSailのメモリ512MBでさんざん苦労したWordPressを1GBに増やしたら安定した経験があります。欲張ったとたんにメモリ1GBでも足りなくなってしまいます。自宅にもLinuxサーバーを置いている方は、だいたいこんな感じでメモリ32GB以上、プロセッサ8vCPUくらいはあるので、重いサーバーソフトを入れても「いきなり全く動かない」事態に直面することは無いと思います。この感覚でメモリ1GBの無料インスタンスを使うと大変なことになります......。Stackを使っています。全文検索エンジンのElasticsearch、データ前処理(ETL)ツールのLogstash、BIツールのKibanaが3点セットで構成されています。今回、このうちLogstashだけOCIの無料枠VMインスタンスに設置を試みました。いうのも、自宅の回線が低速・不安定なため各種情報サービスからAPI経由で安定してデータを取得するのが難しいからです。VM上で構成されています。VMを起動して、その上で各種アプリを起動する仕組みです。これがデカい......。メモリ1GBのインスタンスにLogstashをインストールして起動したところ、またたく間にメモリがすべて食いつくされてしまいました😨こうなるともう大変。sshでのログインすら出来なくなり、モニターを見ると再起動をかけるたびにOSがフリーズしているのです😭サーバー向けUbuntuにはスワップが初期設定されていない私はメモリー極小のレンタルサーバー時代からLinuxを使っていたので、てっきりクラウドのインスタンスにもスワップメモリ(メモリが足りなくなったときに、一時的にデータをディスクに退避させてメモリ不足を防ぐ仕組み)が設定されていると思い込んでいました。Linuxのイメージは初期設定ではスワップが設定されていないのです。従って、メモリ使用量が1GBに達するとそのままOSがフリーズしてしまうことになります。私は泣きながら再起動して速攻でsshしてLogstashをいったん止めた上で、スワップの設定を行い、なんとかLogstashの動作を安定させることが出来ました。2GBのスワップ領域が確保されデータの一部が退避されているサーバーでスワップは設定するべきか?なぜ、Ubuntuサーバーでは初期設定でスワップが無いのでしょうか。理由はふたつ考えられます。第一の理由は、『速度重視』です。Webサーバーなど多数のアクセスをさばかなければならないサーバーは、常に高負荷の状態にあります。データを頻繁にディスクに退避させると、メモリとの速度差のぶんだけサーバーの処理速度が落ちてしまいます。業務用途では避けたいところです。第二の理由は、『ディスクの消耗』です。一般的にディスクはメモリーと比べて寿命が短く、頻繁にアクセスすると故障につながる恐れがあります。サービスダウンが許されない業務用途では、これも避けたいところです。個人用途のサーバーはめったに高負荷になりませんし、遅くても我慢すればどうにかなります。遅いと言ってもハードディスクの時代とは違い、今ではSSDなので大して遅くありません。個人用途のクラウドインスタンスには遠慮なくスワップを設定しようというのが私の結論です。21.04の基本的なインストールが終わりました。Buildでの導入でしたが、既にリリース月ということもあり大きな障害はありませんでした。2日目以降は細かい環境構築と機械学習周りの整備となります。S.M.A.R.T対応のSSDなどの状態を調べるツール。このPCの内蔵SSDは非対応な模様どれもインストールが特に難しいということはありませんでしたので、詳細説明は割愛します。updatePosgreSQLをaptのレポジトリに登録します。アーカイブを取得する必要があります。ディスク容量が消費されます。Yデフォルトではバージョン13が入るようです。RDBMS.無事動いているようです。21.04に未対応のようです。使用できませんが、別のパッケージから参照されます。これは、パッケージが欠落しているか、廃止されたか、または別のソースからのみ利用可能であることを意味します。レポート』のデータベースを作ってみます。google_mobilityDBeaverで接続します。DBeaverでSQL文を実行してテーブルを作成します。integer);CSVデータのインポートいよいよCSVのインポートです。DBeaverはCSVも格納先フォルダをデータベースとして登録してからPostgreSQLにインポートするのがお作法のようです。データベース上のテーブルとCSVでカラム名が一致していれば、マッピングで困ることはないようです。Mobilityデータも短期間のうちにplace_idというカラムが増えており、オープンデータの扱いのやっかいさを実感します。増えていたカラムはvarchar(32767)で格納されてしまっているので、varchar(32)に縮小します。select文でデータを抽出する4838804レコードから400ミリ秒ほどでselect文を実行できました。自粛の影響が残っているようです。21.04使用開始(1日目)Ryzen+NVIDIAのノートが欲しい。データベースと機械学習の全部入りラーメンだ前々から、図書館などでもガッツリ使い倒せるLinuxノートが欲しいと思っていました。SUGEEEE出来る程度のスペックです。(144Hz)/15.6インチ/フォートレス・グレイ)』が¥82,800と安かったので衝動買い。メモリは即32GBに増設しました。1650が付いて8万ちょい。Renoirシリーズの廉価版です。『最強』ではありませんが、実売10万円以下のノートでこの性能は魅力的です。SSDは内蔵で別途2TBくらい欲しいですが、金欠なので追い詰まってから考えることにします。プロセッサ(5800U/5700U/5600U/5500U/5400U/5300U)」で7nm世代のままです。5nmのZen4世代は2022年に登場予定です。21.04のインストールUbuntuのインストールが終わると、沢山の有名で楽しそうなアプリをリコメンドされます。「SSDの残りが300GBくらいしかないのに片っ端から入れちゃダメダ」と思いつつも入れられるうちはつい入れてしまいます。日本語フォルダ名を英語化lsなどでパス指定するときにフォルダ名が日本語だとIMEの切り替えや入力が面倒なので、英語に変えてしまいます。xdg-user-dirs-gtk-update導入直後に入れたアプリ初心者でも導入に困らなさそうなものは名前だけ......。NVIDIA独自のグラフィックドライバ。パッケージの自動更新サービス。画面キャプチャソフト。Shutterが使えなかったので最優先で導入。言わずと知れたPython機械学習系のフレームワーク。プログラム開発環境のデファクトスタンダード。21.04は、素の状態でNVIDIAの独自ドライバを使ってくれません。チューニングの観点から独自ドライバを入れるのが良さそうです。ff)続いて、aptのレポジトリに最新のドライバが降ってくるように設定します。2388FF3BE10A76F638F80723FCAE110B1118213CLinux版のAnacondaはシェルから導入Anacondaはパスなど各種設定をOSから乗っ取る『お行儀が悪いフレームワーク』なためか、Ubuntuでもストアアプリには入っていません。シェルスクリプトを落としてbashで実行します。今回インストールしたAnacondaは2020年7月版。主な開発ツールのPATHを乗っ取る仕様であることを考えると半年以上放置されているのは少し疑念を感じます。updateはかけるのですが......。最新版をいち早く使いたい方はAnaconda無しのアカウントを作るか、仮想環境で運用することになりそうです。BuildASUSのノートPCを年明けにAmazonのセールで買いました。1650が載ったゲーミング仕様ですが、Linuxを入れる予定です。Linuxを入れるのはデータベースとデータ分析、Python機械学習が目的です。PostgreSQLは6コアを使ってくれますし、Tensorflow/Kerasなどディープラーニングのフレームワークもnvidia-smiなどの設定がうまく行けばGPUの並列処理を使ってくれるはずです。4000系のAPUに未対応だからです。21.04に合わせてOSを入れ替える予定です。BuildをUSBメモリから起動したところ。AMDへの対応が遅れがちなLinuxですが、Linusも今ではAMDのThreadripperを愛用しているとのこと。このノートでUbuntuが安定稼働することに期待しています。21.04のインストールから各種環境構築まで一連の過程を記事として掲載しようと思っています。当サイトではPayPay送金による寄付をお願いしております。記事が役に立ったら100円でも結構ですのでお送り頂けると嬉しいです。WordPress.。