隔離觀察
Blog 最近三五不時都會自爆,系統説著什麼 OOM killer ( 記憶體不足 ),導致網站的 Css / Js 無法載入,結果被 archive.is 拍到了,成為人生不可磨滅的一個污點。

Jan  1 03:17:17 Astroweb kernel: [9977701.558957] python invoked oom-killer: gfp_mask=0x200da, order=0, oom_score_adj=0
Jan  1 03:17:17 Astroweb kernel: [9977701.558960] python cpuset=/ mems_allowed=0
Jan  1 03:17:17 Astroweb kernel: [9977701.558963] CPU: 1 PID: 11702 Comm: python Not tainted 3.16.0-6-amd64 #1 Debian 3.16.57-2
Jan  1 03:17:17 Astroweb kernel: [9977701.558965] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
Jan  1 03:17:17 Astroweb kernel: [9977701.558966]  0000000000000000 ffffffff81534da1 00000000000200da 0000000000000000
Jan  1 03:17:17 Astroweb kernel: [9977701.558968]  ffffffff81533903 ffffffff815391de 0000000000000200 ffffffff8106c633
Jan  1 03:17:17 Astroweb kernel: [9977701.558970]  ffffffff810ca594 ffffffff8115dd13 ffff88003d302190 ffffffff8172fe32
Jan  1 03:17:17 Astroweb kernel: [9977701.558972] Call Trace:
Jan  1 03:17:17 Astroweb kernel: [9977701.558978]  [<ffffffff81534da1>] ? dump_stack+0x5d/0x78
Jan  1 03:17:17 Astroweb kernel: [9977701.558980]  [<ffffffff81533903>] ? dump_header+0x95/0x1fd
Jan  1 03:17:17 Astroweb kernel: [9977701.558982]  [<ffffffff815391de>] ? mutex_lock+0xe/0x30
Jan  1 03:17:17 Astroweb kernel: [9977701.558986]  [<ffffffff8106c633>] ? put_online_cpus+0x23/0x90
Jan  1 03:17:17 Astroweb kernel: [9977701.558989]  [<ffffffff810ca594>] ? rcu_oom_notify+0xc4/0xe0
Jan  1 03:17:17 Astroweb kernel: [9977701.558993]  [<ffffffff8115dd13>] ? do_try_to_free_pages+0x483/0x520
Jan  1 03:17:17 Astroweb kernel: [9977701.558996]  [<ffffffff8114baed>] ? oom_kill_process+0x21d/0x370
Jan  1 03:17:17 Astroweb kernel: [9977701.558998]  [<ffffffff8114b68d>] ? find_lock_task_mm+0x3d/0xa0
Jan  1 03:17:17 Astroweb kernel: [9977701.559001]  [<ffffffff8114c2ae>] ? out_of_memory+0x4be/0x4f0
Jan  1 03:17:17 Astroweb kernel: [9977701.559003]  [<ffffffff81152c66>] ? __alloc_pages_nodemask+0xca6/0xcf0
Jan  1 03:17:17 Astroweb kernel: [9977701.559006]  [<ffffffff811960c7>] ? alloc_pages_vma+0xb7/0x1d0
Jan  1 03:17:17 Astroweb kernel: [9977701.559009]  [<ffffffff8118858c>] ? read_swap_cache_async+0xec/0x170
Jan  1 03:17:17 Astroweb kernel: [9977701.559011]  [<ffffffff81147aa0>] ? sleep_on_page+0x10/0x10
Jan  1 03:17:17 Astroweb kernel: [9977701.559013]  [<ffffffff81188706>] ? swapin_readahead+0xf6/0x1a0
Jan  1 03:17:17 Astroweb kernel: [9977701.559016]  [<ffffffff81176f38>] ? handle_mm_fault+0xc88/0x1170
Jan  1 03:17:17 Astroweb kernel: [9977701.559018]  [<ffffffff8105b4fb>] ? __do_page_fault+0x1ab/0x470
Jan  1 03:17:17 Astroweb kernel: [9977701.559021]  [<ffffffff8153d008>] ? async_page_fault+0x28/0x30
Jan  1 03:17:17 Astroweb kernel: [9977701.559022] Mem-Info:
Jan  1 03:17:17 Astroweb kernel: [9977701.559023] Node 0 DMA per-cpu:
Jan  1 03:17:17 Astroweb kernel: [9977701.559025] CPU    0: hi:    0, btch:   1 usd:   0
Jan  1 03:17:17 Astroweb kernel: [9977701.559026] CPU    1: hi:    0, btch:   1 usd:   0
Jan  1 03:17:17 Astroweb kernel: [9977701.559027] Node 0 DMA32 per-cpu:
Jan  1 03:17:17 Astroweb kernel: [9977701.559028] CPU    0: hi:  186, btch:  31 usd:   0
Jan  1 03:17:17 Astroweb kernel: [9977701.559030] CPU    1: hi:  186, btch:  31 usd:   0
Jan  1 03:17:17 Astroweb kernel: [9977701.559032] active_anon:112444 inactive_anon:112551 isolated_anon:0

可能是 BotanJs 的壓縮程序會利用 closure,而 closure 又得要用 Java,所以每個 requests 都得 invoke 一次 JVM。如果 requests 量多的話會炸掉是可以理解的,但由於我整合了各種 cache 的機制讓重壓的清況降到最小,理論上如果不是經常被訪問新頁面旳話應該不會有問題才對。

奇怪怎麼以前都沒發生過這種事,這是在説這個 blog 旳流量提高了吧?

不過亦有可能是程序的設定上出問題了,Celery 的除錯模式好像會引致 Memory leak。唔嗯,説起來這棟西是幾年前寫的?還在用 Python 2 欸…

一開始我嫌麻煩所以隨便弄個排程讓服務每天自動重啟一次,暫且紓緩了一段時間。之後又限制 JVM 的最大可用 Memory,可惜自爆的頻率還是越來越高,有一次還影響到了其它服務,連 wenku10 的腳本平台都被誤殽了。結果我遲了一整個月才發現,可想而知這固平台沒什麼卵用。

於是今天下定決心將服務隔離開來,再設一台虛擬機 ( 其實伺服器已沒什餘裕了 )。重寫了部分環境與設定,發現這東西用 Python 3 好像也是可以。本來以為是大工程,一直拖著不想做,結果輕鬆地改好了。這讓我想起那個什麼農地上的岩石看起來是搬不動,就這麼被擱了三個世代的故事。

嘛,總之這樣算是了了一件事吧?先讓服務執行一段時間好了,這樣再怎麼自爆都不會影響其他務服了。

***

來説一下近況吧。

近來都在打機呢,上個月馬拉松式地玩了錬金工房的 Arland 系列三集,《ロロナ》之前在  PSP 上玩到一半 Bug 掉了沒辦法通關,所以擔心那個 Bug 會不會再出現…結果沒有。《トトリ》那個出海找母親結果發現在早已在幾年前的某村落掛掉了,然後跪在墳前哭泣那一幕有夠揪心的啊。第三集開始音樂突然就升了一個等級,變得比較接近後來的版本了,而且主角還是公主,要開發王國這一點也很有趣。不過在第三集 トトリ 卻透路自己已找到母親,所以正史是沒有掛掉嗎?因為是舊版遊戲在 PS4 上玩起來,前兩隻的演出感覺怪怪的,所以我都只著重通關劇情並沒有認直攻略呢。

之後又玩了 Blue Reflection ( 由於減價,又是 Gust 的作品,所以買了 )。結果不怎麼好玩,每天就是探索、跟朋友聊天、Boss 戰,然後就沒有了。音樂很棒,但在對話的情節不知怎的都沒有音樂,所以氣氛有種抑壓感。不過 Boss 都很帥就是了。呀,大部份的演出沒辦法跳過這點好可恨!每次戰鬥結束都被強迫看她們擺 Pose 親熱,看得我都要抓狂了。

遊戲先到這裏吧,減價時我亂買了一堆所以怎麼玩都玩不完。

呀,小説的話我依然有在看!最近更得太多了害我睡眼不足呢。如果可以更慢一點就好了。

wenku10 的開發……不好意思因為上面兩個因素已經用掉所有時間了,哈哈。我會盡快將小説看完的?雖然好像怎麼看怎麼玩好像都不會完呢。

反正都沒什麼人用,而且也沒有嚴重的 Bug 導致書看不了,再説 Windows Phone 已停產一年了,用戶只有減無増,所以我覺得開發的節奏慢一點也沒什麼人會困擾啦。
Tag(s): BotanJS diary
Profile picture
斟酌 鵬兄
Sun Jan 06 2019 18:39:15 GMT+0000 (Coordinated Universal Time)
Last modified: Wed Apr 10 2019 04:37:51 GMT+0000 (Coordinated Universal Time)
Comments
13年使用第一台Windows Phone,Lumia 820。那时用到你的轻小说文库,对UI印象极其深刻,极其喜欢,开软件刷刷刷界面比看小说还有趣。至今想起来仍然觉得很独特。
  后来手机摔坏了换成了Android手机,加上WP消亡,文库跑路等等,WP8版的轻小说文库的记忆也就淡化。不过一旦想起这个软件,一切都又变得清晰起来。平时不太喜欢用UWP软件,所以几年过去了没注意到原来轻小说文库是有重生版。今天才发现,还没使用。先过来感谢一下。
  你的博客UI风格感觉真的不错。
hianghokung
1:49 PM Jan 2019, 09 Wed
Reply
呵呵,謝謝。沒想到時隔 6 年居然還有人留意到這裏呢,有點感動。

Windows Phone 我只能説很可惜了,畢竟是 MS 的決策,我所能做的只有繼續開發直至手上的 950 XL 掛掉。不對,掛掉的話我想我會買個小型 Win10 平板繼續開發吧。

雖然 UWP 版在觀感上暫時還比不上舊版,但的給力程度完全是兩個檔次…這裏我就不多説了,詳細可以看一下 UWP 版的後記。
4:04 PM Jan 2019, 09 Wed
avatar
Do you even comment?
website: 
Not a valid website
Invalid email format
Please enter your email
*Name: 
Please enter a name
Submit
抱歉,Google Recaptcha 服務被牆掉了,所以不能回覆了