Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

標籤: 資訊學習

PHP 的 Memcache 與 Memcached 函式庫無法共用資料

Posted on 2018 年 6 月 14 日2021 年 3 月 12 日 By 日落 在〈PHP 的 Memcache 與 Memcached 函式庫無法共用資料〉中尚無留言

剛接觸的應該會被命名搞的一頭誤水,畢竟名字相同、不然就是幾乎相同 XD

負責提供記憶體讀寫快取的服務叫做 Memcached,這個服務和 PHP 八竿子打不著關係,就算你不是寫 PHP 也這樣可以使用他。

再來要說的是 PHP 底下的二個函式庫:Memcache 和 Memcached。這二個函式庫,主要是提供一個方法讓 PHP 連接前面提到的 Memcached 讀寫資料。另外要注意的是 Memcache 和 Memcached 函式庫雖然名字很接近,但卻是二個完全不同的函式庫,無法同時使用,只能二選一。

以下透過 psysh 實際操作,來看一下同時使用會發什麼事情。

使用 Memcache 寫入一筆資料:

>>> $m = new Memcache
=> Memcache {#201}
>>> $m->connect('localhost')
=> true
>>> $m->set('test', ['Hello', 'World'])
=> true
>>> $m->get('test')
=> [
     "Hello",
     "World",
   ]

再來使用 Memcahed 函式庫,連到 localhost 的 Memcached server 看看會發生什麼事:

>>> $d = new Memcached
=> Memcached {#198}
>>> $d->addServer('localhost', 11211)
=> true
>>> $d->getAllKeys()
=> [
     "test",
   ]
>>> $d->get('test')
=> 0

可以看出這二個函式庫提供的 methods 看起來很接近,但是底層處理資料的方式不一樣,只能挑其中一個來使用。

Tags:PHP, 資訊學習

Blogger (終於) 支援自訂網址使用 HTTPS

Posted on 2018 年 4 月 29 日2021 年 3 月 12 日 By 日落 在〈Blogger (終於) 支援自訂網址使用 HTTPS〉中尚無留言

或許這個消息有點 lag,但 Blogger 終於讓自訂網址的使用者可以使用 HTTPS 了。

到管理頁面中點選「設定」=>「基本」,就可以看到 HTTPS 啟用選項:

啟用以後,網站大概會中斷約 10 ~ 20 分鐘,恢復正常以後就會發現可以使用 HTTPS 連線了。

可能有人好奇 HTTPS 憑證到底怎麼生出來的?可以透過瀏覽器的開發人員工具看一下憑證內容:

其實是 Blogger 自己跑去向 Let’s Encrypt 跑認證流程申請的  XD

在 Blogger 開始使用 HTTPS 以後,若編輯器發現網頁中的連結、圖片仍有使用 HTTP (無加密) 協定時會發出警告,我這邊是把 AWS s3 的圖床中間再多加一層 Cloudfront 走 HTTPS,目前看起來費用沒有增加多少 (敝站也沒多少流量就是了)。

再找時間把 Cloudfront 的設定方式整理出來,比想像中的簡單。

Tags:分享, 生活雜記, 網路架站, 資訊學習

docker aufs 把 inode 吃光的問題

Posted on 2018 年 2 月 22 日2021 年 3 月 12 日 By 日落 在〈docker aufs 把 inode 吃光的問題〉中尚無留言

前幾天在做 aptitude upgrade 時,系統噴儲存空間不夠的錯誤訊息,用 df 追了一下,發現是 inode 被吃光,網路上找了一下統計 inode 使用量的 script 來掃整個分割區:

find / -type d -print0 | xargs -0 -n1 count_files | sort -n

...
1794 ./var/lib/docker/aufs/diff/04d42c6fb6b72464ab397cc0cd67d8600f7bc0964ff7c9bb54392ec3eb53a13e/home/git/gitlab/app/assets/images/emoji
1794 ./var/lib/docker/aufs/diff/04d42c6fb6b72464ab397cc0cd67d8600f7bc0964ff7c9bb54392ec3eb53a13e/home/git/gitlab/public/assets/emoji
1794 ./var/lib/docker/aufs/diff/04d42c6fb6b72464ab397cc0cd67d8600f7bc0964ff7c9bb54392ec3eb53a13e/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/gemojione-3.0.1/assets/png
1794 ./var/lib/docker/aufs/diff/04d42c6fb6b72464ab397cc0cd67d8600f7bc0964ff7c9bb54392ec3eb53a13e/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/gemojione-3.0.1/assets/svg
1794 ./var/lib/docker/aufs/diff/bb44ab5db5ec7f5e3fe0bde806002e887cf11cf9aa598ce0453083f80fc10ff9/home/git/gitlab/app/assets/images/emoji
1794 ./var/lib/docker/aufs/diff/bb44ab5db5ec7f5e3fe0bde806002e887cf11cf9aa598ce0453083f80fc10ff9/home/git/gitlab/public/assets/emoji
1794 ./var/lib/docker/aufs/diff/bb44ab5db5ec7f5e3fe0bde806002e887cf11cf9aa598ce0453083f80fc10ff9/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/gemojione-3.0.1/assets/png
1794 ./var/lib/docker/aufs/diff/bb44ab5db5ec7f5e3fe0bde806002e887cf11cf9aa598ce0453083f80fc10ff9/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/gemojione-3.0.1/assets/svg
1794 ./var/lib/docker/aufs/diff/fcfbf2f22b171407b0a9d657131c0c4b55aadd50c49a26abfc40cd404ab02298/home/git/gitlab/app/assets/images/emoji
1794 ./var/lib/docker/aufs/diff/fcfbf2f22b171407b0a9d657131c0c4b55aadd50c49a26abfc40cd404ab02298/home/git/gitlab/public/assets/emoji
1794 ./var/lib/docker/aufs/diff/fcfbf2f22b171407b0a9d657131c0c4b55aadd50c49a26abfc40cd404ab02298/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/gemojione-3.0.1/assets/png
1794 ./var/lib/docker/aufs/diff/fcfbf2f22b171407b0a9d657131c0c4b55aadd50c49a26abfc40cd404ab02298/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/gemojione-3.0.1/assets/svg
1966 ./var/lib/docker/aufs/diff/04d42c6fb6b72464ab397cc0cd67d8600f7bc0964ff7c9bb54392ec3eb53a13e/home/git/gitlab/public/assets
1966 ./var/lib/docker/aufs/diff/bb44ab5db5ec7f5e3fe0bde806002e887cf11cf9aa598ce0453083f80fc10ff9/home/git/gitlab/public/assets
1971 ./var/lib/docker/aufs/diff/fcfbf2f22b171407b0a9d657131c0c4b55aadd50c49a26abfc40cd404ab02298/home/git/gitlab/public/assets
2271 ./var/lib/docker/image/aufs/distribution/diffid-by-digest/sha256
2271 ./var/lib/docker/image/aufs/distribution/v2metadata-by-diffid/sha256
3291 ./var/lib/dpkg/info
4025 ./var/lib/docker/aufs/diff/fcfbf2f22b171407b0a9d657131c0c4b55aadd50c49a26abfc40cd404ab02298/home/git/gitlab/tmp/cache/assets/sprockets/v3.0
4029 ./var/lib/docker/aufs/diff/04d42c6fb6b72464ab397cc0cd67d8600f7bc0964ff7c9bb54392ec3eb53a13e/home/git/gitlab/tmp/cache/assets/sprockets/v3.0
4029 ./var/lib/docker/aufs/diff/bb44ab5db5ec7f5e3fe0bde806002e887cf11cf9aa598ce0453083f80fc10ff9/home/git/gitlab/tmp/cache/assets/sprockets/v3.0

看起來兇手是 docker,而且吃掉的量還不小。

查了一下資料,其實是自己在刪除 images 和 volumes 時有漏參數,導致有檔案沒有被清乾淨,inode 被吃光沒有回收回來。參考這篇「Docker、AUFS、inode耗尽和一个小工具」整理,可以透過以下 script 把無用的檔案清空:

docker images -qf dangling=true | xargs docker rmi

docker volume ls -qf dangling=true |xargs docker volume rm

這二個 script 跑完以後,我的 inode usage 從 99% 瞬間降到 17%,看來以後真的要小心。

其他參考資料:

  • 關於我常用的 Docker 小提示 – by toomore
  • tripflex/inodes – 一個統計 inode 使用量並視覺化列表的小工具
Tags:Docker, Linux, 資訊學習

2018 年開發人員的技能整理

Posted on 2018 年 1 月 26 日2021 年 3 月 12 日 By 日落 在〈2018 年開發人員的技能整理〉中尚無留言

在 Hacker News 看到一篇文章「2018 Developer Skills Report」,裡面列出一些程式設計師的特質,還蠻有趣的,這裡大概列出幾個有趣的點:

  • 有超過四分之一的人在 16 歲左右就開始接觸程式設計,但有 36% 的人在 26 歲才開始學習程式設計,而且現在是資深工程師。所以學寫程式不嫌晚、也不嫌早。
  • 幾乎左有的開發者都求知若渴,大多都學了 3 種或以上的程式語言
  • 自修的人比在學校上課的比例還稍微多了一些
  • 年輕人傾向從網路媒體取技術知識 (像是 StackOverflow、YouTube)
  • 幾乎所有人都把問題解決能力擺在最前面
  • 在工作與生活間取得平衡的方法:彈性的工時、遠端作業、注重產出而非工時 (這些台灣公司好像很少有聽過)
Tags:生活雜記, 資訊學習

IBM DNS 9.9.9.9 測試

Posted on 2017 年 11 月 21 日2021 年 3 月 12 日 By 日落 在〈IBM DNS 9.9.9.9 測試〉中尚無留言

看到新聞:「IBM宣布推出免費DNS轉址服務 Quad9,只要將DNS伺服器設為9.9.9.9 即可阻擋惡意網站」,聽起來頗有趣的,所以玩了一下。

我這邊比較偏重 DNS 回應速度,自家機器在中華電信的線路上,先用 168.95.1.1 來看回應速度:
johnroyer@box:~$ ping -c 5 168.95.1.1
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_seq=1 ttl=247 time=11.5 ms
64 bytes from 168.95.1.1: icmp_seq=2 ttl=247 time=11.8 ms
64 bytes from 168.95.1.1: icmp_seq=3 ttl=247 time=11.9 ms
64 bytes from 168.95.1.1: icmp_seq=4 ttl=247 time=10.5 ms
64 bytes from 168.95.1.1: icmp_seq=5 ttl=247 time=10.3 ms
--- 168.95.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 10.377/11.248/11.921/0.664 ms


再來看看 Google DNS 8.8.8.8:

johnroyer@box:~$ ping -c 5 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=26.1 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=28.7 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=22.0 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=15.7 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=57 time=33.0 ms
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 15.702/25.163/33.086/5.935 ms

最後看一下 9.9.9.9 的回應速度:

johnroyer@box:~$ ping -c 5 9.9.9.9
PING 9.9.9.9 (9.9.9.9) 56(84) bytes of data.
64 bytes from 9.9.9.9: icmp_seq=1 ttl=52 time=108 ms
64 bytes from 9.9.9.9: icmp_seq=2 ttl=52 time=107 ms
64 bytes from 9.9.9.9: icmp_seq=3 ttl=52 time=108 ms
64 bytes from 9.9.9.9: icmp_seq=4 ttl=52 time=113 ms
64 bytes from 9.9.9.9: icmp_seq=5 ttl=52 time=108 ms
--- 9.9.9.9 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 107.934/109.402/113.095/1.905 ms

目前 9.9.9.9 的回應速度還差了一個數量級,所以如果瀏覽器開一個結構比較複雜的網頁,說不定開啟速度會慢到一秒。然後我比較希望有病毒樣本,所以不希望那麼安全的 DNS (拖走)


另外,速度比較慢的原因可能是網路節點問題。用 mtr 掃了一下 route:

                             My traceroute  [v0.85]
box (0.0.0.0)                                          Tue Nov 21 14:51:00 2017
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                       Packets               Pings
 Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.0.1                       0.0%     4    0.5   0.9   0.4   1.8   0.0
 2. h254.s98.ts.hinet.net             0.0%     4    9.1   9.7   9.1  11.0   0.6
 3. hc-c6r1.router.hinet.net          0.0%     4    8.7   9.2   8.7   9.8   0.0
 4. sczs-3202.hinet.net               0.0%     4    8.6  11.9   8.6  20.4   5.7
 5. TPDT-3012.hinet.net               0.0%     3   13.0  13.6  13.0  14.7   0.7
 6. 220-128-14-90.HINET-IP.hinet.net  0.0%     3   11.2  23.0  11.2  46.7  20.5
 7. pcpd-3212.hinet.net               0.0%     3   10.9  11.3  10.9  11.8   0.0
 8. pcpd-3211.hinet.net               0.0%     3   11.7  13.4  10.5  18.0   4.0
 9. 72.14.202.178                     0.0%     3   10.3  11.2  10.3  12.0   0.7
10. 108.170.244.129                   0.0%     3   12.4  11.6  10.9  12.4   0.0
11. 72.14.238.189                     0.0%     3   11.1  13.2  11.1  16.2   2.6
12. google-public-dns-a.google.com    0.0%     3   11.2  11.6  11.2  11.9   0.0

8.8.8.8 其實沒有連到國外,Google 在台灣國內就有 DNS 節點。

同樣方法看一下 9.9.9.9 的 route:

                             My traceroute  [v0.85]
box (0.0.0.0)                                          Tue Nov 21 14:52:53 2017
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                       Packets               Pings
 Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.0.1                       0.0%     3    0.4   1.0   0.4   2.1   0.7
 2. h254.s98.ts.hinet.net             0.0%     3    9.0   9.0   9.0   9.1   0.0
 3. hc-c6r1.router.hinet.net          0.0%     3   10.3  10.7   9.0  13.0   2.0
 4. sczs-3201.hinet.net               0.0%     3   16.2  23.3   9.8  43.8  18.0
 5. TPDT-3011.hinet.net               0.0%     3   11.3  12.6  11.3  13.5   1.0
 6. r4103-s2.tp.hinet.net             0.0%     2   12.9  12.2  11.5  12.9   1.0
 7. r4103-s2.tp.hinet.net             0.0%     2   12.0  23.4  12.0  34.7  16.0
 8. xe-0-1-0-3-5.r00.osakjp02.jp.bb.  0.0%     2   48.0  54.8  48.0  61.6   9.6
 9. ae-5.r25.osakjp02.jp.bb.gin.ntt.  0.0%     2   47.6  50.8  47.6  54.0   4.5
10. ae-0.r20.sngpsi07.sg.bb.gin.ntt.  0.0%     2  117.4 114.2 110.9 117.4   4.6
11. ae-1.r01.sngpsi03.sg.bb.gin.ntt.  0.0%     2  106.7 107.4 106.7 108.1   0.0
12. ge-100-0-0-11.r01.sngpsi03.sg.ce  0.0%     2  116.8 114.4 112.0 116.8   3.3
13. dns.quad9.net                     0.0%     2  109.9 108.7 107.6 109.9   1.4

終端的節點在美國,所以速度比較慢是一定的啦。在多給他們一點時間吧。

Tags:資訊學習

文章分頁

上一頁 1 ... 3 4 5 ... 53 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.