隔離觀察
Blog 最近三五不時都會自爆,系統説著什麼 OOM killer ( 記憶體不足 ),導致網站的 Css / Js 無法載入,結果被 archive.is 拍到了,成為人生不可磨滅的一個污點。
可能是 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 已停產一年了,用戶只有減無増,所以我覺得開發的節奏慢一點也沒什麼人會困擾啦。
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 已停產一年了,用戶只有減無増,所以我覺得開發的節奏慢一點也沒什麼人會困擾啦。
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)
后来手机摔坏了换成了Android手机,加上WP消亡,文库跑路等等,WP8版的轻小说文库的记忆也就淡化。不过一旦想起这个软件,一切都又变得清晰起来。平时不太喜欢用UWP软件,所以几年过去了没注意到原来轻小说文库是有重生版。今天才发现,还没使用。先过来感谢一下。
你的博客UI风格感觉真的不错。
Windows Phone 我只能説很可惜了,畢竟是 MS 的決策,我所能做的只有繼續開發直至手上的 950 XL 掛掉。不對,掛掉的話我想我會買個小型 Win10 平板繼續開發吧。
雖然 UWP 版在觀感上暫時還比不上舊版,但的給力程度完全是兩個檔次…這裏我就不多説了,詳細可以看一下 UWP 版的後記。