SURFACE PRO5

ゲーム専用機として、ATOMじゃないタブレットを探していたのですが、
i5 4300 * Fujitsu Arrows Tab Q704/hで、
15000円前後を狙っていましたが、

あと数秒というところで、ヤフオクのウォッチを観てしまい、
バッテリー切れだのSurfaceと思ったら、

画面割れの方を、、、落札、、、

 

「ホントいらないものを落としてしまった」
と、後悔したのですが、

SURFACEって、高い上に、使えないものと思っていましたが、
特殊な用途向けには、最高の品でした。

***

まあ、落札後、交換用の液晶をebayで探してみたところ、15000円前後。
(今、円売りなので、買いは買い)

画面割れてなければ、中古でも5万円以上の代物で、
※バッテリー充電不可は、3万強

交換して、売りさばくつもりでしたが、

 

CPUはi5 7200 / メモリー8GB / SSD 256GB

PC(タブレット)としては、だいぶ性能が高く、
メインで使っているPCより、1世代、後のCPUだし。

 

割れた液晶

で、液晶は16:9ではなく3:2の2736×1824 という、変則なもの。

ちょうど、使いたいアプリが、
FHDの縦使いでは、画面に収まらず、諦めていたのですが、
1.5倍表示しても、1824×1216となり、
幅1200pxあれば、十分収まるサイズ!

その下のスペースには、Explorerを収めることが出来るし、

 

後悔から、好一転!

 

本日到着し、開封したところ、
しっかりに割れてるけど、タッチパネルは生きている。
割れは気にはなるけど、使えなくもなく、
ただ、ドラッグすると、指が引っかかることぐらい。

まあ、交換用液晶ディスプレイ発注しました。by ebay

 

ACアダプター付属せず・・・

Amazonで、丸1日、吟味しました。

今回は、専用充電器じゃなく、PD充電器を買いました。

12V or 15V output is must
29W or greater for Surface Pro M3, or Surface go
36W or greater for Surface pro and Surface laptop, 45W or 60W is recommended.

参考 >> https://oswdiary.net/archives/5455

という、条件があり、
「45W以上推奨」ということで、


Nimaso PD 3.0-1 USB Type C & 2 USB-A 充電器 「PSE認証済」【Power Delivery対応 61W 3ポート USB-C急速充電器】

こちらにしました。

USBが+2なのが、いい感じ。

 

あとは、ケーブルですね。

Surface Pro USB-C充電ケーブル 15V PD充電に対応
ということで、水曜発注の木曜着。
ありがたいことです!

 

予想外の出費となりましたが、
とてもいい商品が手に入り、大満足しております。

 

PS

本来なら、DELL Latitude 7350があれば、
買わなくてよかったのですが、半年探しています。

きっと、家のどこかに、、、

-

ポート監視して、自動リブート@AWS EC2

ECCUBE3は、ECCUBE2と比べて、対応速度は格段に早いし、
その恩恵ともなるのが、コアのSymfonyですが、

EFSが使えない(おそらく、ファイル数が多すぎるのが原因)

は、解決し、今回は、こちらの問題について。

 

エラーが出ると、502に陥り、暴走が始まる。

単純に、エラーコードを書くと、カンタンに発生出来ました。

その都度、PHP-FPMをリブート。

実運用では、暴走しているであろうCPUの高負荷状態を、
CloudWatchで監視し、リブートさせたわけですが、
最終的には、crontabでの10分ごとの禁断の自動リブート

その結果、サーバーが落ちることはなくなりましたが、
新たな問題が発生。

 

決済プロセスが途中で中断される

まあ、当然予測していたわけですが、、、
A.完全停止とB.決済落ちと、どっちがいい?という、狭間でしたので。

当然、機会損失の少ないBとなるわけですが、

 

原因は、PHP-FPMのメモリーリーク

PHP Fatal error: Allowed memory size of xxx bytes exhausted

 

  1. エラーが起きないようコードを書き換える。
  2. PHP-FPMの自動リブート

1. Synfony内部まで、触っていられないし、原因が取り切れるわけではないので、
2. PHP-FPMの設定も修正し、毎分ステータスチェックの自動リブートを作りました。

 

PHP-FPMの設定

pm.max_requestsを上げればいいだとか、
memory_limitを上げればいいだとか、

無尽蔵のメモリーを積めば、解決するかもしれませんが、
地球温暖化対策のため、最小メモリーの512Mなので、

www.conf

pm = dynamic
pm.max_children = 8
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 6
pm.max_requests = 128

php_admin_value[memory_limit] = 32M

1プロセス 32MB x 8プロセスを上限 とし、
128リクエスト毎にプロセスを、自己再生を設定。

参考 > PHPのメモリの上限やエラーについて学ぼう!メモリの考え方基本解説

この設定でも、発生するので、

参考 > Nginx + PHP-FPM で 502 Bad Gateway が時折発生する場合の対処方法

request_terminate_timeout

単一のリクエストを処理する際のタイムアウト。この時間を過ぎるとワーカープロセスが kill されます。 このオプションは、’max_execution_time’ ini オプションが何らかの理由でスクリプトの実行を止められなかった場合に使われます。 値 ‘0’ は ‘Off’ を意味します。 使用可能な単位: s(秒)(デフォルト), m(分), h(時間) あるいは d(日)、 デフォルト値: 0
PHP: 設定 – Manual より

 

今のところ、3日間無停止が続いていますので、
今回、「暴走時、指定時間後、killしてくれる」が、肝だったということでしょう。

WEBなら、30秒でいいんじゃないですかね?、長くても60秒?。
しかし、デフォ0っていうのが、理解不能。せめて、初期値300などしておいてほしい箇所でした。

 

それでも心配なので、

ステータスチェック

CloudWatchでは、ポート監視できるのは、EC2ではなく、ALBだけ。
どの機械かはわからず、再起動も負荷。

結局、CPUのクレジットの使用下限を設けて、
リブートしか出来ないため、自前で実装。

LOGFILE=/var/log/phpfpm-check-status.log
URL=http://127.0.0.1/_healthcheck4elb.php
HTTP_STATUS=`curl -LI ${URL} -o /dev/null -w '%{http_code}\n' -s`

log=`date '+%Y-%m-%d %H:%M:%S'`" PHPFPM STATUS:${HTTP_STATUS} RESTARTED"
if [ $HTTP_STATUS = "200" ]; then
    exit;
else
echo ${log} | sudo tee -a ${LOGFILE}
    sudo docker stop phpfpm
    sudo docker start phpfpm
fi

あとは、これをcrontabで毎分実行。
エラー時には、メールで通知されると、便利かも。

 

その他参考

 

 

-