Tihiroの頭を休めるIT教室

少しだけ頭使って後は根性

JavaScriptでaタグをリンクさせないようにする。

概要

aタグの存在意義を奪ってやる行為。

具体的な内容

HTML側

<a id="a_tag" name="a_tag" href="link.html">ここをクリックすると飛びます</a>

JavaScript

document.getElementById('a_tag').removeAttribute('href')

まとめ

色んなことができるもんです。

サーバー管理のコマンドメモ

概要

自分用メモ

環境

CentOS 7

コマンド

スワップ頻度の設定

echo 30 > /proc/sys/vm/swappiness

0でスワップしない。 100でスワップできるだけする。

スワップ領域のクリア

swapoff -a && swapon -a

結構時間かかります。

キャッシュをクリア

echo 1 > /proc/sys/vm/drop_caches

スワップ発生状況の確認

sar -W 1

ディスクIOの確認

sar -b 1

ロードアベレージ とかCPU使用率とかの確認。

top -d 5 -U ユーザーID -b

メモリの使用量とかの確認

vmstat 1

基本的には

・ディスクIO ・ロードアベレージ ・待ちプロセス ・スワップ領域 ・キャッシュ領域 あたりをみて、何が原因かを推測して特定する。

里親はじめました。

里親に登録したことを聞いた人はきまって「えらいね」「すごいね」という反応をします。こちらとしては「えらくもすごくもない」と思うので、なんと反応していいのか困るのが現状です。

聞いた人の考えは

  • 親は自分の子供を育てなければならない
  • 子供は実の親に育てられなければならない

であるのかなぁ、と想像するわけです。そして、私はそうは思わないということです。

結婚には祝福が必要だというように「子育てには適正と知識とスキルが必要」だと私は考えます。

f:id:r_tihiro:20190228080555j:plain
アナスイさん(死刑囚:25歳)のお言葉

つまりは

  • 子育てが得意でない親がいる
  • 他人の子供を育てるのが得意な親がいる

ということです。 そういうわけで「子育てに向いていない親の子供」を「他人の子供を育てるのが得意な親」が育てればいいという思いです。

もっと簡単な言葉で言うと「分業」です。

分業。私は釣竿を作るから、あなたがそれを使って魚を釣ってください。そして釣れた魚を半分こしましょう。

そういうお話です。

他人の子供を育てるのは偉くも凄くもなくて、単なる分業。やりたいからやっている。結局のところはやりたいからやる。に尽きるわけです。

サーバーの利用状況を確認したい。

概要

ある意味、自分用メモ。DB周りのお仕事をしていると、「ちょっとデータベースの挙動が遅いんだけど見てくんない?」みたいなことを言われます。残念なことに、何が遅いのか、いつ遅いのか、どのように遅いのか、なぜ遅いのか、などは聞いても明確な答えは帰ってきません。彼らも分からないから答えられないのです。

環境

調査してみる

とりあえずデータベースが遅いと言われても、データベースが遅くなかったりします。大体サーバーまたはネットワークの調子が悪いせいだったりします。

サーバーの状況調査

メモリ枯渇を疑う

sar -W 1

で、スワップの発生状況を確認します。終了するときは「Ctrl+C」です。

free -m

でメモリの使用率を確認します。空き領域を示す「free」が0に近くても慌てない。「buff/chache」も「free」と合わせて確認します。両方0に近かったらメモリ枯渇を疑います。

メモリ枯渇を疑ったら、メモリを大量に消費しているプロセスがないかを確認します。

・メモリの大量に消費しているプロセスがあった -> そのプログラムを作ったプログラマを問い詰めてもらうようにします。 ・メモリを大量に消費しているプロセスがなかった -> メモリが足りないのでサーバー管理者に丸投げします。

CPU使用率を確認する。

top

でCPUの使用率とかその他諸々を確認できます。結果をファイルに出力したい場合は

top -d 1 -b > top_result.txt

にすると良いでしょう。grepなんかで結果を絞った方がもっとよいでしょう。

topコマンドの結果からCPU使用率とかが分かります。一番分かりやすいと思うのが「load average」ですね。一つのプロセスでCPUを100%利用しているときは、ロードアベレージが1になるようです。二つのプロセスでCPUを100%利用していると、ロードアベレージが2。つまりはロードアベレージが1を超えるとヤバイって話です。

ディスクIOを確認する。

sar -b 1

で確認します。終了するときはやっぱり「Ctrl+C」です。

最後に

なぜ人は全部データベースのせいにしたがるんだろう。

PostgreSQLでログイン中のユーザーを切り替える。

概要

PostgreSQLで、例えばparentという名前のユーザー(ロール?)でログインしている最中に、childというユーザーに切り替えたい。

環境

PostgreSQL 10.3 ※そろそろ10.5にしたい。

変更

SET ROLE child

でOK。

確認

SELECT CURRENT_USER;

で確認。

使い所

いちいちログインしなおすのが面倒な時に。です。

長年悩んでいた原因不明の頭痛の原因が分かったので、対策して治してみた。

症状

  • 月曜日に頭痛
    • 定時後には回復
  • 日曜日に頭痛
  • 土曜日にも頭痛
  • 寝すぎると頭痛
  • 長期休暇に頭痛と悪寒

頭痛の状態

  • 背中が若干痛くなるような感じ
  • こめかみに指を当てると脈動がすごい
  • 血流に合わせて痛みが襲う感じ
  • 肩を回すと余計に辛くなる

原因

  • カフェインのとりすぎ。
  • カフェインのとりすぎ。

対策

  • カフェインをとらない。

ようするに

夏休みとか年末年始とかのたびに原因不明で体調崩して頭痛が酷くて動けなかったり、月曜日には決まって頭痛がきたりと非常に悩んでいました。

子供の頃から頭痛は友達みたいな状態でしたので、特別理由があると思わなかったのですが、原因はカフェインだったのです。

仕事中は1時間に1杯ぐらいコーヒーを飲んでいたこと、それが頭痛の原因だったようです。家では全くコーヒーを飲まないので、週末や長期休暇の間に体内のカフェインが切れてと頭痛が発症する。カフェインの離脱症状と呼ばれるそうですが、そんな仕組みのようです。

ためしに月曜日にコーヒーを飲むのをやめてみたら、これが大当たり。カフェインの離脱症状がこれでもかと襲ってくるわけです。いつもでしたら火曜日には頭痛が治るのですが、金曜日ぐらいまで頭がズッキンズッキン。食事で噛むのもしんどいぐらいで、もうなんというか。

それでも次の月曜日ぐらいになると若干治ってくる感じで、その週末ともなると頭痛ともおさらばできたわけであります。なんとなく体の調子もよくなり、まるで羽が生えたかのよう。どんだけカフェインに蝕まれていたって話なんですよね。

カフェインは悪か?

と言われれば、答えはノーなんじゃないかと。結局は体質次第だと思います。なので、カフェインを摂取していても無問題な人もいるでしょうし、過敏に反応する人もいる。ってことで。

そういえば

小学生高学年から高校生まで「偏頭痛」と「光視症」と「閃輝暗点」等々に悩まされていました。光視症が出たら必ず嘔吐して、その後に発熱となるのが本当に恐怖でした。いつ光視症が発症するか分かりませんでしたし、実際に中学校の遠足中や部活中に発症したことも。

で、こちらの治った原因は「貧血」を治療したことでした。高校の折に貧血と診断されて、それが治ってからは「光視症」と「閃輝暗点」は発症していません。相変わらず頭痛はお友達状態でしたが……もしかしたら治っていたのかもしれませんね。

声を大にして言いたいこと。

健康って本当に素晴らしいですね。

リモートホスト上に稼働しているPostgreSQLに対してpg_dumpする。

したいこと

リモートホストPostgreSQLからデータを引っこ抜きたい。

環境

コマンド

自端末から

pg_dump -h xxx.xxx.xxx.xxx -U user_name -d database_name > output_dir

でOK。-hにリモートホストIPアドレスを指定する。 ちなみに-Fcオプションつけると圧縮される。

-vをつけると、進捗がわかる。コマンド打ってみたものの反応がなくて不安になっちゃうっていう人は-vをつけると幸せになれる。

気をつけること

ダンプが大きすぎてネットワークの帯域を占有しちゃいました。とかにならないこと。