/srv/irclogs.ubuntu.com/2014/07/16/#maas.txt

=== jfarschman is now known as MilesDenver
=== jfarschman is now known as MilesDenver
=== jfarschman is now known as MilesDenver
=== jfarschman is now known as MilesDenver
=== jfarschman is now known as MilesDenver
=== jfarschman is now known as MilesDenver
=== jfarschman is now known as MilesDenver
=== jfarschman is now known as MilesDenver
=== CyberJacob|Away is now known as CyberJacob
=== jfarschman is now known as MilesDenver
=== CyberJacob is now known as CyberJacob|Away
jtvThanks rvba.08:14
rvbanp08:14
=== jfarschman is now known as MilesDenver
bigjoolsallenap: I was planning on doing a crappy TimerService derived service in pserv and making it do exactly as discussed in that email, do we need to pre-imp this further?08:56
allenapbigjools: Try to avoid the crappy part, but otherwise that sounds fine.08:57
bigjoolshaha08:58
bigjoolsallenap: it's gonna call the func I landed yesterday every hour and then kick off a deferToThread() for the import08:58
bigjoolsallenap: I still think we need a queueing mechanism for jobs08:58
allenapbigjools: This is something I’ve discussed a lot with rvba. There should be only one job running per node at any time. For example, it doesn’t make sense to have both an install and a shutdown job running concurrently...09:00
allenapHowever, there are subtleties.09:00
bigjoolsallenap: what about related jobs like this one?09:00
bigjoolsunrelated, sorry09:00
allenapIf an install job is running and a “check the power state” question comes along, we can probably answer that question without waiting for the install to finish.09:01
bigjoolsand I agree - but enforcement should be done in a different level09:01
allenapbigjools: There should only be one import job at a time.09:01
bigjoolsallenap: not talking about that per se09:01
bigjoolsI mean total jobs across the pserv09:01
bigjoolsif it's managing thousands of nodes, we could potentially have thousands of threads09:02
allenapIf we start hitting concurrency problems then we can add limits, but let’s get it working first.09:02
bigjoolsall strangling CPU09:02
bigjoolsI think we should consider this from the star09:03
bigjoolst09:03
allenapDon’t use threads too freely then :) Use the Twisted, Luke. In truth, many of those threads will be blocking at any one time.09:03
bigjoolswell, thanks to the GIL :)09:03
allenapYes, but mostly because of IO.09:03
bigjoolssimplestreams is not twisted09:03
allenapI know, but it’s largely IO bound.09:04
bigjoolsyes - it's a candidate09:04
bigjoolsbut it's no I/O bound when it builds the tarballs09:04
allenapWhen you use deferToThread, the thread is obtained from a thread pool, to which we can apply limits.09:04
allenapWe can also create separate thread pools and defer tasks into them specifically.09:04
bigjoolsthat would be great09:05
allenapThe default thread pool is limited to 10 threads.09:06
bigjoolscelery limited to total cores09:07
bigjoolswe have to be absolutely sure that long running things like this don't interfere with power_on and suchlike09:08
bigjoolsand for that we need a QA plan09:08
allenapbigjools: If simplestreams is using tarfile, the Python module, then high CPU there could pose a problem to pserv. If it’s using /bin/tar then I’m not going to worry.09:08
bigjoolsI can't remember, let me look09:09
allenapbigjools: twisted.internet.reactor.getThreadPool().adjustPoolSize(min, max)09:09
bigjoolsit shells out09:09
bigjoolsit loop mounts the extracted image09:10
bigjoolsbut will obviously hammer the disks09:10
allenapbigjools: That’s not new though, and we could ionice it if it’s swamping things.09:11
bigjoolsallenap: so that's adjusting the default pool size?09:11
bigjoolsaye09:11
allenapYep.09:11
bigjoolsallenap: too easy09:11
bigjoolswhat happens if you exceed that?  does it queue, or reject new thread requests?09:12
allenapbigjools: It queues.09:13
bigjoolsI wonder if we shouldn't set a limit on that too09:13
allenapbigjools: If we subclass t.python.threadpool.Threadpool and override callInThreadWithContext we can add that behaviour.09:16
allenaps/Context/Callback/09:16
allenapbiab09:17
bigjoolsallenap: excelente!09:23
=== jfarschman is now known as MilesDenver
allenapbigjools: Actually, more Twisted would be to use a DeferredSemaphore, say, to manage concurrency.09:33
rvbaallenap: I've got a branch up for review that I'd like you to review if you have time (it's tiny): https://code.launchpad.net/~rvb/maas/ipmi-power-state/+merge/22697409:50
rvbaI contains shell script… and my thinking is "shell script" → allenap ;)09:50
rvbas/I contains/It contains/09:50
bigjoolsallenap: can you have limits on those?09:53
allenaprvba: Sure.09:56
rvbaTa09:56
allenapbigjools: Yep, you set the limit on the semaphore size when creating it. We’d want to check the sem.waiting queue before calling sem.acquire() or sem.run(…).09:59
bigjoolsallenap: excelente!09:59
=== jfarschman is now known as MilesDenver
jtvWho wants to review my branch for the QA lab tests?  https://code.launchpad.net/~jtv/maas/qa-alt-ngi-name-fix/+merge/22699110:29
rvbajtv: I'll take it10:29
jtvThanks.10:29
=== jfarschman is now known as MilesDenver
=== jfarschman is now known as MilesDenver
=== jfarschman is now known as MilesDenver
=== roadmr is now known as roadmr_afk
=== CyberJacob|Away is now known as CyberJacob
=== jfarschman is now known as MilesDenver
=== roadmr_afk is now known as roadmr
=== jfarschman is now known as MilesDenver
=== Solution-X|AFK is now known as Solution-X
=== jfarschman is now known as MilesDenver
=== jfarschman is now known as MilesDenver
allenapblake_r: Have you noticed any memory problems using tgt for iSCSI? I’m using a laptop with 4GB memory to run a region+cluster for my NUCs but the boot import crashes with out-of-memory errors when registering images with tgt at the end.22:17
blake_rallenap: no I have not in don't have anything with that low of memory22:21
allenapblake_r: Hehe, yes, it’s somewhat underspecified. It’s pink too.22:22
blake_rallenap: unless the targets are mounted I wouldn't think it should take that much22:22
blake_rallenap: the laptop is pink?22:22
allenapblake_r: Yes, the laptop is pink. It’s a cast-off. I have set a lot of swap but it doesn’t care. Okay, thanks anyway, I may sniff around to see what I can discover.22:23
blake_rallenap: Haha. Okay.22:25

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!