たまに掃除は必要!熱暴走…

イメージ
 そんなに暑くないのに… 本日、午前中にオンラインで打合せをしていると、突然マシンがダウン。 一瞬、停電か?と思ったもののディスプレイの電源は入っている。 あれっ?と思い、すぐさまノートで打合せを継続。 その間に、再度マシンの電源を投入。 問題なく起動する。 でも、CPU温度がたまたま目に入り、95℃を超えて徐々に上昇していく。 105℃あたりで再度マシンダウン。 これは、熱暴走によるダウンの可能性が高い。 以前、CPUをRyzen7→9にした頃は、60℃〜70℃程度だった記憶がある。 本当はGW中にSSDの載せ替えを行う予定だったけれど、忙しくて先延ばしにしていた。 その時やっていれば、多分掃除もしただろうに…。 ということで、午後からマシンを解体し、掃除をすることに。 ケース本体のFANはホコリがかなり溜まっている。 GPUのFANは問題ない。 電源とCPU FANはひどい。 一旦、CPU FANを取り外し、きれいにする。ついでにCPUグリスも塗り直しセット。 動作確認すると、投入直後で40℃台。 そりゃ、熱暴走も起こすわけだ。 せっかくバラしたので、SSDの載せ替えを実施。 OSは500GBで、ユーザ領域(/home)は1TBを使用しているもののAIのmodelをいくつも落としていたり、DockerのImageが多種置いてあるため、結構容量を食っている。 今回、2TBのSSD( Hanye SSD ¥17,800- で入手済)を用意してあるので、 1TB→2TB, 500GB→1TBと玉突きで移動させることを計画していたので実施する。 本当は、ddコマンドで移すつもりだったのだけれど、3月にお客さんのところで使いそうだったので、 ORICOのクローン機能付SSDアダプタ を入手済。 裸族のSSD版ですね…。1万円程度の品です。 これに、新品のSSDとこれまでの1TBのSSDを差し込んでクローン開始。 そこそこ時間はかかるものの、放置でOK。 ただ、HanyeのSSDについているヒートシンクが引っかかるため、一旦取り外してクローン後取り付ける必要があった。 続いて、500GB→先程の1TBに書き込み。 ただ、1TB(samsungの980pro)が、先程のクローンでかなり熱くなっていたため、速度低下が激しい感じ。1TB→2TBよりも時間がかかった感じ。 ...

久々のPHPでハマる…。

長いこと使ってますが…

web系のスクリプトは、perlから始まりrubyとPHP4に手を出して、長いこと経ちます。もちろん、perl時代が長かったわけで、phpを経てrubyに慣れたものの、またphpに手を出したら、またperl文法に戻ってしまって…。行きつ戻りつを繰り返しているような錯覚を覚えてます。

で、今回は充分自宅環境でテストをして、動作確認をしたスクリプトを持っていったのはいいが、どうも動作しない。
どれだけ待ってもTIME OUTするじゃない…。
まあ、いつもは書かないけれど、デモンストレーションとして書いたものが…。
「fopenでURLを叩いても、ローカルファイルを叩いても、wrapperが同じように処理してくれるのよ〜」なんて説明をしたくて、用意したのに外部へ見に行くとタイムアウト。
仕方なく、ローカルネットワークで試すとOK。

そういうことですか…。外部はダメで、ローカルはOKとな…。もちろん自宅ではLocalhostと外部はテストしてありOKなんだけど…。
ちがいはproxyしかない。

proxy通してやるじぇ

そこまで分かれば簡単や〜とばかりに、システムのproxy設定を見る。
「はて?設定されとる」そうか、環境変数に書かれてないんだな。
と思い、
$ set | grep proxy
確かに、何も設定されていない。そうかそうか…。いひひ…。
$ export http_proxy=http://172.…:3128
export  ftp_proxy=http://172.…:3128
いつもの奴や…。と思いつつついでにftp側も設定。wget叩いたりして、ええやん!
「これで、満足したやろ!phpめ〜」と声には出さずに叫びつつ、スクリプトをブラウザから叩く。


しょんぼり

た、タイムアウト〜! 心のなかはアウト〜!
なぜだ…。そか、php5の設定か?と思いつつ、ググってみる。
php5.iniを確認し、allow_url_fopenをチェック。問題ない。
はぁ…と思ったら、fopenのwrapperはproxy非対応って…orz


PHPのManualページの下の方に、proxy使う場合はfsockopenで叩けみたいに書いてあるじゃんか…。
そういう仕様ですか…そうですか…。

<?php
/*************start code**************/
/*your proxy server address*/
$proxy = "192.168.10.1";
/*your proxy server port*/
$port = 8080;
/*the url you want to connect to*/
$url = "http://www.php.net/";
$fp = fsockopen($proxy, $port);
fputs($fp, "GET $url HTTP/1.0\r\nHost: $proxy\r\n\r\n");
while(!feof($fp)){
  $line = fgets($fp, 4000);
  print($line);
}
fclose($fp);
/**************end code**************/
?>
こんだけかいな…。これくらいならproxy対応しておいてくれよ〜。
結局、proxyサーバに直にリクエスト出してるだけだし…。

結局のところ
なれぬ手法を紹介しようとしたことが、第一の敗因。
そして、システム側が設定されていれば、上に乗ってる言語は対応しているだろうという思い込み。
最後に、全く同じテスト環境を用意できないこと…。

ちうことにしておこう。
どうせまた、忘れてしまうやろうし、こしょっと書いておけば、いつかまた会えるだろうw



コメント

このブログの人気の投稿

Ubuntu24.04 でGUIが死んだ

VirtualBoxが異常

MEGAにも弱点があった?