キャッシュを消す・抑え込む[Linux]

キャッシュという機能がある。

キャッシュは、本来動作を速くしてくれる有難ものであるが、メモリを多く使うプログラムを実行する際にメモリを圧迫し、スワップを引き起こしたり、プログラムの強制終了を引き起こしたりする。それを防ぐ方法のメモ。

 

ページキャッシュの一般的な消し方

 

sudo sh -c "echo 1 > /proc/sys/vm/drop_caches"

 

これで消しても時間とともに増加してしまう。そんな時は、秒間隔で、キャッシュを消し続けるようにする。

sudo watch -n 20 "echo 1 > /proc/sys/vm/drop_caches"

これを行うと20秒間隔で、消し続けてくれる。ここで、20を修正すれば、秒間隔を修正可能。

 

fortran連番ファイル(test1.txt~)作成法(2種類)

fortranで連番ファイルを作る方法をよく忘れるのでメモ。

<シンプルな方法>

character filename*30

do i =1,5
 write(filename,'("test",i3.3,".txt")') i
 open(1,file=filename,status='replace')
end do

ファイル名は、

test001.txt 〜test005.txtのようになる。 

参考:Fortran Tip集: 連番ファイル名の生成方法

 

出力の時は、この方法で十分だが、test1.txtのようなファイルを入力で選択する時に困ってしまう。そこで、このような時の方法を考えた(あまりスタイリッシュではないが、、、)。

 

<少しごちゃごちゃ>

character filename*30

do i=1,5
 write (filename,*) i
 filename="test"//adjustl(filename)
 open(1,file=adjustl(adjustr(filename)//".txt"),status='replace')
end do

ファイル名は、

test1.txt 〜test5.txtのようになる。

 

 

SCPが途中で切れるときの対処法

sh_dispatch_run_fatal: Connection to XXX.XXX.XXX.XX port 22: message authentication code incorrect

みたいなのが出て途中でscpが切れてしまうということが起きたが無事解決できたのでメモする。

 

解決法: -o ServerAliveInterval=1をオプションでつける。

例) scp -o ServerAliveInterval=1 サーバー クライアント

1秒ごとにシグナルを送り、サーバー側がidle状態と判断するのを防いでくれる。このオプションはsshでも使えるので、sshで似たようなことが起こっても解決できるかも。

常にこのオプションをつけたい場合は、bashrcに

alias scp='scp -o ServerAliveInterval=1'

と書くと良い。

 

それでもだめな時、

rsync --partial -r --progress --rsh=ssh サーバー クライアント

で何度もトライするって方法もあるらしい(切れた所からやり直せる)。

ただ同期したい場合は、

rsync --progress -r --append-verify  サーバー クライアント

で良い(この場合、途中のファイルはおそらく最初から転送し直し)。

 

終わった後に、

サーバー上のディレクトリ内(cd dir後)で

md5sum $(find . -type f) | tee ../dir.md5

を実行し、出来たdir.md5をクライアントのコピーしたディレクトリ手前に写し、

md5sum -c ../dir.md5

を実行すれば、ファイルが壊れていないかなどを確認できる。

(echo $? を実行し”0”が出力されればOK。)

 

最終手段(スクリプト 100回やり直す)

#!/bin/bash

retry() {
   MAX_RETRY=100
   n=0
   until [ $n -ge $MAX_RETRY ]
   do
      "$@" && break
      n=$[$n+1]
      sleep $[ ( $RANDOM % 15 )  + 1 ]s
   done
   if [ $n -ge $MAX_RETRY ]; then
     echo "failed: ${@}" >&2
     exit 1
   fi
}

retry rsync --partial --progress --rsh=ssh -r $server_name ./

 

 

自由研究・自作天秤と重曹の熱分解

暇だったので、天秤を自作してみました。こんな感じ。

f:id:tchem:20201025181821j:plain

自作した天秤

 

作ってみよう!<てんびんを作るための道具といろいろな材料>

を参考にしてつくっているが、材料と一部の作成方法は我流。それくらい簡単にできた。

 

この天秤の精度を試すのに同じものを両方に乗せるので事足りると思うが、面白くないので、今回は重曹(炭酸水素ナトリウム)の熱分解で確かめてみる。

 

重曹の熱分解の化学式は、次のやつ。おそらく中学で習うのでほとんどの人が知ってるはず。

2NaHCO3 → Na2CO3 + H2O + CO2

これから、2mol(168g)の重曹を熱したら1mol(106g)の炭酸ナトリウムが得られることがわかる。つまり、重曹を十分に熱したら、元の0.63倍の重さの炭酸ナトリウムが得られるってこと。これを自作した天秤で確かめる。

 

今回は、重曹の重さを5gとするので、だいたい3.15g(5×0.63)の炭酸ナトリウムが得られるはず、これを確かめよう。あとちゃんとした分銅がないので1gの1円玉を代用する。

結果

まず、5gの重曹を1円玉5枚と天秤で測る

 

f:id:tchem:20201025184122j:plain

5g量った


熱分解は200℃以上で反応速度が速くなり、300℃で無水塩になる。これを考慮して次にオーブントースターで、300~350℃あたりの温度で15分加熱。ここで、紙も一緒に入れるときは450℃以上にならないように注意!

f:id:tchem:20201025184916j:plain

オーブントースターで加熱

最後に残留物の重さを自作天秤で確認。

まず、反応前の条件1円玉5枚(約5g)で確認。

f:id:tchem:20201025185314j:plain

残留物と1円玉5枚の比較

おっ!軽くなってる!!

じゃあ予想の3.15gに近い1円玉3枚(約3g)と次に比較しよう。

f:id:tchem:20201025185529j:plain

残留物と1円玉3枚の比較

おおっ!ちゃんと残留物のほうがすこし重く予想されることと一致している!

 

適当に自作した天秤でも結構な精度があることがわかった。皆さんも天秤を自作していろんなものの重さを検証してはいかが?

インターネット付き賃貸の罠

早いものでもう10月、最近はコロナ渦で家で過ごす時間が多くなり、時間感覚が早い、、、。そして、この10月は、密かに合格前予約という大学の新住居探しが行われ始めている月でもある。今回は、最近の情勢だからこそ重要になってくるインターネット付きの学生用賃貸住宅(アパート・マンション)の落とし穴について書いていきたいと思う。

 

最近になって、ようやく対面授業や対面のサークルなどもぼちぼち始まって来たが、オンライン授業のものも多く残っている。おそらく、コロナが収束した後も、経費削減などのためにオンラインに以降したまま継続するといったものが出てくるだろう(企業のインターンや面接)。そんな中、重要になってくるのが、インターネット速度。

 

今私は、大学生であり、ネット付き学生用アパートに住んでいるのだが、まずこれを見てほしい。

1:平日午後

f:id:tchem:20201010103218p:plain

あるネット付き学生用賃貸の平日午後
2:平日の朝7時(朝の遅いほとんどの大学生が寝ている時間)

f:id:tchem:20201010103420p:plain

あるネット付き学生用賃貸の朝7時

インターネット回線スピードテスト・通信速度測定 | USEN GATE 02 

 

一番目の平日の午後を見てみると、平日の朝に比べ、ダウンロードの速度が約320分の1になっている。この平日の午後は、まだいい方でひどい時は、全くネットが繋がらない。

 

なぜこのようなことが起きるのだろうか。その原因は、安いネット付き賃貸では、一つの回線を複数の住人で共有する形になっているためである。私の知り合いが、私の上の階に住んでおり、グローバルIPアドレス(一つの回線に一個ずつ与えられる)が一緒であることを確認できているので、私のアパートでは少なくとも20人(最悪50人、、、)で一つの回線を共有していることとなる。どうりで特にダウンロード速度だけが遅くなるはずだ。

 

しかも、学生用賃貸なので、生活サイクルがほぼ同じなために、インターネットを使いたい時(特に時間が決まっているオンライン授業)に特にインターネット速度が低下する、、、。

 

このようにコロナ渦で、インターネットが重要になってくる今、学生用のネット付き賃貸には大きな問題を持っている。

対策

では、この問題に対して個人はどう対処すべきか。以下に対策を考えた。

1:ネット回線をどのくらいの人数で共有しているのかを賃貸探しの際に不動産屋で聞く。

何人までの共有が安定するかという基準ははっきり言うことはできないが、少なくとも1つの回線をアパート全体で共有しているような賃貸はおすすめできない。逆に10人以下の人数できちんと細分化されているような賃貸はインターネット速度をきちんと考慮できている可能性が高い(もちろん回線1つの速度もあるので注意が必要だが)。

 

2:ネット回線の有無を気にせず安い賃貸を借り、その分で、モバイルルーターを借りる。

おそらく学生用賃貸は、安さが重要になってくるので、インターネットの設備などを重用視していないところが多いかもしれない。そこで、備えつけのインターネット環境をあきらめモバイルルーターを借りるというもの一つの手かもしれない。

 

 

 

独学をしよう! 東大教授が教える独学勉強法・読書感想文 (おすすめ本)

 

f:id:tchem:20200927170153p:plain

今回読んだ本 東大教授が教える独学勉強法 柳川範之・著 草思社文庫
[どんな人におすすめ?]

これからを独学しようと思うけど、まずやる気が出ないっていいう人にすごくおすすめです!

 

[本を読んで]

独学で学んでいて「もううんざり」って感じていたことは、あるでしょうか?(なんかどっかで聞いたことあるな、、、、笑。)

独学では、一度壁にぶち当たると納得がいく答えに見つかるまでに時間がかかるし、ある程度、進めていくカリキュラムを自分で決めていかなくてはいけません。

これを考えると独学は、すごく面倒なものであると感じます。

 

しかし、独学は本来楽しいものなのです。

 

ではなぜ私達は、独学にもううんざりと感じてしまうのでしょうか?

それは、いままで学校によって教えられた完璧主義的な」独学が原因なのです。

「完璧主義的な」独学とは、「有名大学合格のために、この1ヶ月で、この参考書をすべて理解するぞ!」というような目標を立てて毎日何時間も机に突っ伏して行うやつです。

この独学の目標には、3つの落とし穴があります

 

1つは、「有名大学合格のために」。

勉強をするのに、なぜ勉強をするのかという理由を探すことはいいのですが、有名大学に入るためにはべつに嫌いな勉強じゃなくても、好きなスポーツの推薦で入ることができます。ここでは、その勉強が直接どんなことに役立つのか、つまり、例えば「弁護士になるため」「医者になるため」とか勉強がほぼ絶対に必要になるものを立てるべきです。もちろん、親の意思でなく自分の意思で。

 

2つ目は、「この1ヶ月で」。

この日本では早い期間で理解するほうが、頭がいいとされますが、そんなことはありません。実際ある道で有名になったひとで、初めはおちこぼれだったという人は多くいます。素数ゼミやニホニウムの発見者など(とても尊敬している人たちです)。さらに、頭がいい人が何年とかけて考えぬいたものを、私達がそんな短時間で完璧に理解できるわけがありません。つまり、大事なのは期間の長さではないのです。

 

3つ目は、「この参考書をすべて理解する」。

なにかを説明する上で、いろんな説明をすることができます。

例えば、理想気体の状態方程式PV=nRT。これは、「実験をするとこのような関係式が経験的に成り立つんだ」、「格子模型を考えて、ボルツマンの方程式から式的に求めることができる」といったように説明できる。この2つのうち、経験的にそうなるのならそうであろうと納得できる人は前者の説明、いや理論まで結びつかないと納得できないという人は後者の説明で納得するでしょう。もちろん両方納得いかず、さらに違う説明で納得する人もいます。こんな感じでいろんな説明が存在し、人によって納得できる説明が違います。つまり、人によって納得できる参考書が違うのです。

したがって、1つの参考書を全部理解する必要はなく、理解できる部分2〜3割ぐらいを理解できれば上出来です。

 

つまり、「ぞ!」しか上の目標はいいところがありません笑。実際、目標を立てること自体はいいことです。

 

こんな感じで、私達はいつの間にか「完璧主義」に囚われ、その中で独学というものを嫌いになっていったわけです。実際、私は大学院に進学し、授業量が少なくなりほぼ独学状態になった今では勉強がすごく楽しいと感じます。ほとんどの友人は、「研究はもう疲れた、早く働きたい」と言っているので私がおかしいだけかもしれませんが、、、笑。

 

独学は、自分のペースでできるからいいのです。そんな高い目標に縛られずに気軽に独学を初めてみたらいかがでしょうか?結果的に気軽に勉強をする方がいいということなので、別に独学でなくても、なんとかアカデミーで学ぶのもいいと思います笑。

 

[メモ]

・情報がネットにあふれている現代では「知識」だけではなく

 「考える」ということが必要。

・目標の2〜3割程度こなせればよい。つまり気軽に完璧じゃなく。

・本は、2回読むべし。(一回目は、ざっと、2回目は、批判的に)

・批判的に読めば、独学のテーマが簡単に組み立てられる。

 

[リンク]

www.amazon.co.jp