Django Advent: Scaling Django 原來上個月 25 號, Mike Malone 就已經寫了這一篇 Scaling Django 的文章, 當中也提及一些 Django 1.2 相關的部分。 現在在討論 Scaling 時, 除了 database, cache 之外, 當然都要來一下 NoSQL。 另外對於 Queuing 這個東西, 像是常看到的 RabbitMQ, 得找時間來摸一下。
Posts Tagged ‘django’
[django] johnny cache 4
現在有自己的 django project 在 running 的好處就是可以隨便試一些東西, 昨天晚上看到了 Johnny Cache 這篇文章, 馬上就用 pip 裝了起來, 裝上 stickeraction, 儘管原本對 loading 最重的部份都已經用了 memcache 做處理, 沒想到 mysql queries 馬上就往下掉。
不過其實我還沒去看他的作法 XD 反正他都說有在 production 跑了 (笑)
Anyway, 基本上他的作法主要還是對 queryset 做 cache, 其實先前 pownce 的 mmalone 就有寫了 queryset caching 的 example app, 只是裝上之後得換掉 ModelManager, 有點麻煩, 而 johnny cache 的作法僅是在 settings.py 裡面加進幾行而已, transparent 得多了, Johnny Cache 這篇文章的 comments 裡面也有提到另一個 django-cache-machine。
不過雖然 mysql 的 loading 往下掉, 可是 context switches 跟 interrupts 還有 cpu 都往上飆勒, 在多跑幾天看看。
stickeraction 全新改版 2
其實新版的 stickeraction 上線了一個禮拜左右了, 除了版面整個改掉之外, 也從 php + codeigniter 換成 python + django, 換成用最大的好處就是馬上就多了後台可以用 ( 笑 ) 看起來像是下面這樣。

另外這次也加了多國語系, 目前有繁體中文、簡體中文以及英文 ( 我想也不會有其他的語系了 XD ), 會依照瀏覽器的語系自動切換, 或者可以從網頁的 footer 來切換語系。
這是我的第二個 django project, 由於第一個是公司的網站, 所以不太能亂搞, 弄個一個自己的以後, 想要衝 trunk 就衝, 完全沒再怕的 XD 至少目前知道 django 1.2 rc 1 用 1.1.1 的設定直接衝上去是沒有問題的 XD
其實沒有管 stickeraction 已經好一陣子了, 都靠 monit 在幫我重開 lighttpd, 可是 php fastcgi 仍舊一直變殭屍一直到把記憶體吃光 Orz
機器仍舊是一台 Linode 540MB 的 VPS, deploy 方式是用 apache2 + mod_wsgi 然後一樣是用 virtualenv + pip 來跑。
剛上線的時候比較慘的是, 目前 stickeraction 的 request 差不多是 30 reqs/sec, 晚上會到 40+ reqs/sec, 所以 Apache 的 KeepAlive 沒有關掉, 一上線就被打掛了, 害我一度以為 apache + python 撐不住, 想說程式白寫的了, 趕快開了 server status 來看才知道是怎麼一回事。
目前看來跑起來都很順, 只是 cpu 較先前吃多了點, 不知道是哪個環節, 因為 lighttpd 換成了 apache, php 換成了 python, 而大部分的 mysql table 也都從 MyISAM 換成了 Innodb, 之後在來試一些東西。
django template repl 1
這個 django template debug app 真的是太酷了!
source 放在 github, 不過通常來說不太會需要對 template 做 debug, 可是真的碰上了奇怪的問題的話, boom! 這個就真的很有用!
stickeraction reborn soon 6
除了把 stickeraction 從 php + codeigniter 整個換成 python + django 之外, UI 也整個翻新了, 希望能夠趕快弄好上線, 我就不想管了 (攤)
弄 html + css 真的是比寫 code 還要困難, 而且花時間 ~”~






