{"action":"created","issue":{"url":"https://api.github.com/repos/TryGhost/Ghost/issues/6258","labels_url":"https://api.github.com/repos/TryGhost/Ghost/issues/6258/labels{/name}","comments_url":"https://api.github.com/repos/TryGhost/Ghost/issues/6258/comments","events_url":"https://api.github.com/repos/TryGhost/Ghost/issues/6258/events","html_url":"https://github.com/TryGhost/Ghost/issues/6258","id":123382031,"number":6258,"title":"Fully updated - gives poor performance with Raspberry PI 2","user":{"login":"alexellis","id":6358735,"avatar_url":"https://avatars.githubusercontent.com/u/6358735?v=3","gravatar_id":"","url":"https://api.github.com/users/alexellis","html_url":"https://github.com/alexellis","followers_url":"https://api.github.com/users/alexellis/followers","following_url":"https://api.github.com/users/alexellis/following{/other_user}","gists_url":"https://api.github.com/users/alexellis/gists{/gist_id}","starred_url":"https://api.github.com/users/alexellis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexellis/subscriptions","organizations_url":"https://api.github.com/users/alexellis/orgs","repos_url":"https://api.github.com/users/alexellis/repos","events_url":"https://api.github.com/users/alexellis/events{/privacy}","received_events_url":"https://api.github.com/users/alexellis/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-12-21T23:35:39Z","updated_at":"2016-01-05T12:46:03Z","closed_at":null,"body":"I've noticed a huge slow-down with the latest version of Ghost and Node 4.x\r\n\r\nA fully updated version of Ghost blog running on node-v4.2.3-linux-armv7l with ghost-0.7.3 t took almost an hour to process npm install --production. After this Apache Bench only gave me quite a poor throughput vs Node 0.12 and previous version of ghost. Details below.\r\n\r\nBoth systems are otherwise fully updated running on the same spec SD cards.\r\n\r\nWhat could have caused this performance hit?\r\n\r\nUpdated and Node 4.x\r\n\r\n```\r\nab -n 100 -c 1 http://192.168.0.x:2368/\r\nThis is ApacheBench, Version 2.3 <$Revision: 1663405 $>\r\nCopyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/\r\nLicensed to The Apache Software Foundation, http://www.apache.org/\r\n\r\nBenchmarking 192.168.0.x (be patient).....done\r\n\r\nServer Software:        \r\nServer Hostname:        192.168.0.x\r\nServer Port:            2368\r\n\r\nDocument Path:          /\r\nDocument Length:        4334 bytes\r\n\r\nConcurrency Level:      1\r\nTime taken for tests:   13.655 seconds\r\nComplete requests:      100\r\nFailed requests:        0\r\nTotal transferred:      459000 bytes\r\nHTML transferred:       433400 bytes\r\nRequests per second:    7.32 [#/sec] (mean)\r\nTime per request:       136.549 [ms] (mean)\r\nTime per request:       136.549 [ms] (mean, across all concurrent requests)\r\nTransfer rate:          32.83 [Kbytes/sec] received\r\n\r\nConnection Times (ms)\r\n              min  mean[+/-sd] median   max\r\nConnect:        2    2   0.2      2       3\r\nProcessing:    88  134  36.9    129     444\r\nWaiting:       86  132  36.4    126     443\r\nTotal:         90  136  37.0    131     447\r\n\r\nPercentage of the requests served within a certain time (ms)\r\n  50%    131\r\n  66%    135\r\n  75%    139\r\n  80%    143\r\n  90%    159\r\n  95%    175\r\n  98%    215\r\n  99%    447\r\n 100%    447 (longest request)\r\n```\r\n\r\nNode 0.12 and ghost 0.6.2\r\n\r\n```\r\nab -n 100 -c 1 http://192.168.0.y:2368/\r\nThis is ApacheBench, Version 2.3 <$Revision: 1663405 $>\r\nCopyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/\r\nLicensed to The Apache Software Foundation, http://www.apache.org/\r\n\r\nBenchmarking 192.168.0.y (be patient).....done\r\n\r\n\r\nServer Software:        \r\nServer Hostname:        192.168.0.y\r\nServer Port:            2368\r\n\r\nDocument Path:          /\r\nDocument Length:        8100 bytes\r\n\r\nConcurrency Level:      1\r\nTime taken for tests:   9.981 seconds\r\nComplete requests:      100\r\nFailed requests:        0\r\nTotal transferred:      835300 bytes\r\nHTML transferred:       810000 bytes\r\nRequests per second:    10.02 [#/sec] (mean)\r\nTime per request:       99.810 [ms] (mean)\r\nTime per request:       99.810 [ms] (mean, across all concurrent requests)\r\nTransfer rate:          81.73 [Kbytes/sec] received\r\n\r\nConnection Times (ms)\r\n              min  mean[+/-sd] median   max\r\nConnect:        2    2   0.3      2       4\r\nProcessing:    92   98  11.5     93     136\r\nWaiting:       90   96  11.5     91     135\r\nTotal:         94  100  11.5     95     141\r\n\r\nPercentage of the requests served within a certain time (ms)\r\n  50%     95\r\n  66%     96\r\n  75%     96\r\n  80%     96\r\n  90%    124\r\n  95%    127\r\n  98%    134\r\n  99%    141\r\n 100%    141 (longest request)\r\n```"},"comment":{"url":"https://api.github.com/repos/TryGhost/Ghost/issues/comments/168989709","html_url":"https://github.com/TryGhost/Ghost/issues/6258#issuecomment-168989709","issue_url":"https://api.github.com/repos/TryGhost/Ghost/issues/6258","id":168989709,"user":{"login":"alexellis","id":6358735,"avatar_url":"https://avatars.githubusercontent.com/u/6358735?v=3","gravatar_id":"","url":"https://api.github.com/users/alexellis","html_url":"https://github.com/alexellis","followers_url":"https://api.github.com/users/alexellis/followers","following_url":"https://api.github.com/users/alexellis/following{/other_user}","gists_url":"https://api.github.com/users/alexellis/gists{/gist_id}","starred_url":"https://api.github.com/users/alexellis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexellis/subscriptions","organizations_url":"https://api.github.com/users/alexellis/orgs","repos_url":"https://api.github.com/users/alexellis/repos","events_url":"https://api.github.com/users/alexellis/events{/privacy}","received_events_url":"https://api.github.com/users/alexellis/received_events","type":"User","site_admin":false},"created_at":"2016-01-05T12:46:03Z","updated_at":"2016-01-05T12:46:03Z","body":"@ErisDS This is the standard output from ApacheBench which shows a good estimate of performance in the **Requests per second** column and to a lesser extent: **Transfer rate** column. Please focus on this part of the result. I have also trimmed the other input to help you read it.\r\n\r\nAs a recap on results:\r\n\r\nNode 0.12.7  with Ghost 0.7.3 vs Ghost 0.6.x - results are equivalent, 0.7.3 may even be quicker.\r\nNode 4.x with Ghost 0.7.3 results are poor\r\n\r\nI think the Ghost blog clear has a very strong use-case for supporting ARM as a platform given its growing popularity in the data-center/cloud. The LTS version of node is now 4.x and initial testing has shown a notable drop in performance.\r\n\r\nIn order to provide a good experience on ARM it is worth investigating further. I know there are issues about using JS-based crypto in the login process, but these tests I have done are hitting the root/home-page.\r\n\r\n* How long can ARM users reasonably stay at 12.0.9 without upgrading?\r\n\r\n* Are there any specific costly operations that can be identified through profiling?\r\n\r\n* Could converting every blog post to static pages help?\r\n\r\nI think most people use Ghost because it's lightweight, but 7 responses per second from a quad-core machine with 1GB RAM for essentially a roll-up page from SQL-lite seems slow. While Ghost may be equivalent in speed or faster in 0.7.x - it does obviously have some sort of performance issue with 4.x that needs looking into."}}