Hi all. Per the Canvas LMS minimum requirements, i've stuck with 4gb of memory on a ubuntu 14.04 since 2013 when our school started using Canvas. Haven't had a problem with memory filling up until now. Always followed the production install to the letter and don't mess around with the config files at all.
15205 canvasuse 20 0 807M 444M 4868 S 0.0 11.3 0:02.43 Passenger RubyApp: /var/canvas
15200 canvasuse 20 0 807M 444M 4868 S 0.0 11.3 0:02.48 Passenger RubyApp: /var/canvas
15203 canvasuse 20 0 807M 444M 4868 S 0.0 11.3 0:00.00 Passenger RubyApp: /var/canvas
15206 canvasuse 20 0 807M 444M 4868 S 0.0 11.3 0:00.00 Passenger RubyApp: /var/canvas
1502 canvasuse 20 0 775M 281M 2168 S 0.0 7.1 12:39.25 delayed:wait:1~canvas_queue:0:max
1506 canvasuse 20 0 775M 281M 2168 S 0.0 7.1 0:00.00 delayed:wait:1~canvas_queue:0:max
1488 canvasuse 20 0 708M 277M 1964 S 0.3 7.0 12:52.50 delayed:wait:1~canvas_queue:0:max
1491 canvasuse 20 0 708M 277M 1964 S 0.0 7.0 0:00.00 delayed:wait:1~canvas_queue:0:max
1492 canvasuse 20 0 785M 273M 2168 S 0.0 6.9 12:32.11 delayed:wait:1~canvas_queue:0:max
1494 canvasuse 20 0 785M 273M 2168 S 0.0 6.9 0:00.00 delayed:wait:1~canvas_queue:0:max
1498 canvasuse 20 0 767M 266M 2160 S 0.0 6.8 12:51.98 delayed:wait:1~canvas_queue:0:max
1500 canvasuse 20 0 767M 266M 2160 S 0.0 6.8 0:00.00 delayed:wait:1~canvas_queue:0:max
1483 canvasuse 20 0 697M 262M 1240 S 0.0 6.6 11:12.19 delayed:wait:1~canvas_queue:0:10
1487 canvasuse 20 0 697M 262M 1240 S 0.0 6.6 0:00.00 delayed:wait:1~canvas_queue:0:10
1485 canvasuse 20 0 692M 260M 1276 S 0.3 6.6 11:04.01 delayed:wait:1~canvas_queue:0:10
1490 canvasuse 20 0 692M 260M 1276 S 0.0 6.6 0:00.00 delayed:wait:1~canvas_queue:0:10
1182 redis 20 0 312M 141M 788 S 0.0 3.6 16:43.25 /usr/bin/redis-server 127.0.0.1:6379 1184 redis 20 0 312M 141M 788 S 0.0 3.6 0:00.00 /usr/bin/redis-server 127.0.0.1:6379 1185 redis 20 0 312M 141M 788 S 0.0 3.6 0:00.00 /usr/bin/redis-server 127.0.0.1:6379 1482 canvasuse 20 0 740M 33476 552 S 0.0 0.8 0:06.29 delayed_jobs_pool
1167 canvasuse 20 0 740M 33476 552 S 0.0 0.8 0:18.51 delayed_jobs_pool
1463 canvasuse 20 0 740M 33476 552 S 0.0 0.8 0:00.00 delayed_jobs_pool
23299 canvasuse 20 0 740M 33476 552 S 0.0 0.8 0:00.00 delayed_jobs_pool
1496 postgres 20 0 253M 22388 14508 S 0.0 0.6 3:52.65 postgres: canvas canvas_production 127.0.0.1(41430) idle
1501 postgres 20 0 253M 22200 14484 S 0.0 0.5 3:52.09 postgres: canvas canvas_production 127.0.0.1(41433) idle
1510 postgres 20 0 253M 21888 14312 S 0.3 0.5 3:51.12 postgres: canvas canvas_production 127.0.0.1(41438) idle
1508 postgres 20 0 251M 18780 13800 S 0.0 0.5 3:51.30 postgres: canvas canvas_production 127.0.0.1(41436) idle
1497 postgres 20 0 250M 15024 9532 S 0.0 0.4 3:32.75 postgres: canvas canvas_production 127.0.0.1(41431) idle
15412 postgres 20 0 245M 14892 10376 S 0.0 0.4 0:00.11 postgres: canvas canvas_production 127.0.0.1(47504) idle
1495 postgres 20 0 250M 14880 9612 S 0.0 0.4 3:33.21 postgres: canvas canvas_production 127.0.0.1(41428) idle
11303 www-data 20 0 268M 12292 7888 S 0.0 0.3 0:00.05 /usr/sbin/apache2 -k start
16155 www-data 20 0 268M 11896 7796 S 0.0 0.3 0:00.34 /usr/sbin/apache2 -k start
11302 www-data 20 0 268M 11896 7596 S 0.0 0.3 0:00.05 /usr/sbin/apache2 -k start
1101 postgres 20 0 240M 11856 11284 S 0.0 0.3 0:11.63 postgres: checkpointer process
F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit
production:
workers:
- queue: canvas_queue
workers: 2
max_priority: 10
- queue: canvas_queue
workers: 4
# if set, workers will process this many jobs and then die, causing the pool
# to spawn another worker. this can help return memory to the OS.
# worker_max_job_count: 20
#
# if set, workers will die and re-spawn of they exceed this memory usage
# threshold. they will only die between jobs, not during a job.
# worker_max_memory_usage: 1073741824
#
# disable periodic jobs auditor -- this isn't normally necessary
# disable_periodic_jobs: true
default:
workers:
- queue: canvas_queue
This is weird because i have twice the delayed_jobs processes active in memory than is specified in the configuration file.
That being said, what is the best way to tune the memory usage down? I don't want to have to go to an 8gb instance on amazon and pay that much more money to host 20 users if i can avoid it. I dont't know what any negative consequences will be for changing things in delayed_jobs.yml either.
Any help is appreciated.