Thursday, 2020-07-16

*** jamesmcarthur has joined #openstack-tc00:05
*** jamesmcarthur has quit IRC00:10
*** jamesmcarthur has joined #openstack-tc00:12
*** jamesmcarthur has quit IRC00:16
*** jamesmcarthur has joined #openstack-tc00:18
*** jamesmcarthur has quit IRC00:21
*** jamesmcarthur has joined #openstack-tc00:21
*** tetsuro has joined #openstack-tc00:35
*** tetsuro_ has joined #openstack-tc00:36
*** tetsuro has quit IRC00:40
*** tkajinam has quit IRC01:55
*** tkajinam has joined #openstack-tc01:55
*** jamesmcarthur has quit IRC02:11
*** jamesmcarthur has joined #openstack-tc02:11
*** jamesmcarthur has quit IRC02:16
*** tetsuro_ has quit IRC03:02
*** tetsuro has joined #openstack-tc03:03
*** tetsuro has quit IRC03:07
*** ricolin_ has joined #openstack-tc03:25
*** jamesmcarthur has joined #openstack-tc03:29
*** jamesmcarthur has quit IRC03:32
*** jamesmcarthur has joined #openstack-tc03:32
*** jamesmcarthur has quit IRC04:08
*** jamesmcarthur has joined #openstack-tc04:08
*** jamesmcarthur has quit IRC04:09
*** jamesmcarthur_ has joined #openstack-tc04:09
*** jamesmcarthur_ has quit IRC04:11
*** tetsuro has joined #openstack-tc04:39
*** tetsuro has quit IRC04:39
*** cloudnull has quit IRC04:52
*** cloudnull has joined #openstack-tc04:53
*** tetsuro has joined #openstack-tc05:00
*** tetsuro has quit IRC05:30
*** tetsuro has joined #openstack-tc06:08
*** tetsuro has quit IRC06:25
*** tetsuro has joined #openstack-tc06:25
*** tetsuro has quit IRC06:27
*** dklyle has quit IRC06:36
*** tetsuro has joined #openstack-tc06:42
*** tetsuro has quit IRC06:47
*** tetsuro has joined #openstack-tc06:48
*** tetsuro has quit IRC06:52
*** ralonsoh has joined #openstack-tc07:33
*** tosky has joined #openstack-tc08:02
*** bnemec has quit IRC08:14
*** tosky has quit IRC08:16
*** bnemec has joined #openstack-tc08:17
*** e0ne has joined #openstack-tc08:21
*** tosky has joined #openstack-tc08:33
*** ricolin_ has quit IRC09:45
*** dmellado has quit IRC09:59
*** dmellado has joined #openstack-tc10:07
*** ricolin_ has joined #openstack-tc11:23
cloudnullo/12:10
ShadowJonathannot much activity going on here12:12
*** ijolliffe has joined #openstack-tc12:13
njohnstono/12:21
fungiShadowJonathan: that is often the case for office hours, but folks try to be around in case someone in the community has something they want to bring up with the tc in ways the mailing list doesn't satisfy12:48
fungioh, though today's office hour starts a little over two hours from now anyway12:49
ShadowJonathanheh, in that case, i'd like to bring up if mailing posts like mine aren't getting any attention simply due to the lack of genuine interest (in the subjects), or it is normal that discussions like these take a while12:49
fungibut yeah, the tc tries to conduct most of its business via mailing list and code review12:50
ShadowJonathanmaybe its a part of my social anxiety taking over, but i kinda started to frown after i hadn't gotten any acknowledgement after 2 days12:50
ShadowJonathan"the tc tries to conduct most of its business via mailing list and code review", ah, alright12:51
evrardjpShadowJonathan: You shouldn't stress, things might take a while indeed13:14
evrardjp:)13:14
ShadowJonathanYeah, I'm not used to the community or know the ways "go" around here, so I don't have much base to go off of13:15
ShadowJonathanknow how* the ways "go"13:15
mnasertc-members: please review the proposal to the ideas repo by ShadowJonathan alongside the ML posts ^13:20
ShadowJonathanoh shit, I didn't wanna ask for more attention, just read the room13:20
ShadowJonathanBut thanks13:20
mnaserShadowJonathan: no worries -- our community operates on pinging people to raise attention and shopping ideas around :)13:21
ShadowJonathanAh, alright13:22
knikollao/13:38
*** ianychoi has joined #openstack-tc14:05
gmanno/14:17
*** dklyle has joined #openstack-tc14:46
*** tkajinam has quit IRC14:47
*** irclogbot_3 has quit IRC14:55
*** gibi has quit IRC14:55
*** irclogbot_3 has joined #openstack-tc14:57
*** gibi has joined #openstack-tc14:57
*** johnthetubaguy has quit IRC15:16
*** johnthetubaguy has joined #openstack-tc15:20
*** ricolin_ is now known as ricolin15:30
ricolino/15:30
ShadowJonathani think imma pick project dew to talk about15:32
ShadowJonathanwho here has some interest in looking through https://review.opendev.org/#/c/741008/ to get up to speed with one of my ideas real quick?15:32
ShadowJonathanin short: provide openstack to hobbyists in their homelabs15:33
*** johnthetubaguy has quit IRC16:17
knikollaShadowJonathan: i did give it a read yesterday. i wish our services individually weren't as heavy.16:19
ShadowJonathanthat's the thing that surprised me the most, though i do also feel a little bit cliched because i know exactly how python trades away performance for developing and runtime flexibility16:20
*** johnthetubaguy has joined #openstack-tc16:20
ShadowJonathanthat's why one of my suggestions was to develop alongside (not mainly, a pure python implementation should always exist) a native extension version that can hold critical functions and data much more efficiently16:21
ShadowJonathanknikolla: (whoops, didnt ping)16:21
knikollawe also usually optimise the code for readability, rather than performance.16:21
knikollaShadowJonathan: but that native extension part would lead to rewrites and duplication.16:23
ShadowJonathanagreed, i'm still not entirely "all" for that, as its (again) a devil's triangle16:24
fungialso if you're going to optimize anything, that should start with profiling. putting effort into something which runs infrequently is often a total waste16:24
knikolla++16:24
fungifind the parts which run constantly over and over and optimize those first16:25
ShadowJonathani have yet to actually dive and profile much of anything, but these were just based off of my initial impressions (when running devstack) and requirements i saw on the wikis16:25
ShadowJonathanactually dive into the code*16:25
ShadowJonathanwhere i saw python memory usage being relatively high for a no-status minimal configuration, which gave me that impression of this being more geared towards heavy-duty servers16:26
ShadowJonathanbut that optimization can give benefits regardless of this project's goal, as it would require less resources, and in turn be more cost-effective16:27
knikollabut i think the proposal touches on a good subject, you can't really run openstack for your own pleasure at home unless you by expensive or cumbersome hardware16:27
knikollabuy*16:27
knikollai live in a tiny studio, so a NUC is the most I can do.16:27
*** ijolliffe has quit IRC16:27
clarkbworth noting the memory pressure is an issue for CI16:29
fungimtreinish did a great presentation on his closet cloud racked into an ikea end table16:30
knikollai was thinking exactly about him16:30
clarkbI think a fair bit of our background fail rate noise is related to swap usage which has a dominoe effect as you start using up all the disk iops16:30
clarkbI don't think this is intentional because its for big servers, its a side effect of using a language where udnerstanding memroy use can be difficult so it is often ignored16:30
clarkband because many users do have relatively large servers the issue isn't a priority16:31
fungiwell, also python's gc doesn't free allocations16:31
knikollacould we implement some automatic profiling in the CI?16:31
clarkbknikolla: we have that16:31
clarkbits not very granular though16:31
fungiso if you have a long-running python process, it's never going to reduce its memory utilization, at best it will stop increasing it after some point16:31
clarkbfungi: sort of, the magic of virtual memory means you can free physical memory use16:31
clarkbbut ya the vmem won't decrease16:31
fungitrue16:31
clarkbthe trick is to ensure that pages can be paged out16:32
knikollaclarkb: interesting. can you point me in the right direction?16:32
clarkbknikolla: ya let me see if I can find some links16:32
fungiknikolla: it's in the dstat logs16:32
clarkbwe have dstat and some others but ya ^16:32
fungidevstack has dstat defined as one of its services16:32
ShadowJonathani think a lot can definitely be optimized in following general areas (talking from a uneducated perspective (with the actual code)):16:33
ShadowJonathan- limiting one-second objects to a minimum, dont create and destroy elaborate JSON objects if its not needed, use list comprehensions and such16:33
ShadowJonathan- only kick off background jobs and threads when they're actually needed, have them idle in a block context out of scope of many objects that were needed, so they're released16:33
ShadowJonathan- scale up memory only to the actual required virtual entities in use for the service, if there's 0 virtual entities, there should only be a bedrock of memory in use by basic application code and config values16:33
ShadowJonathan(now lemme read back)16:33
knikollaawesome, thanks, i'll look into it.16:33
*** e0ne has quit IRC16:33
fungiShadowJonathan: as for threads, in openstack api services a lot of that is going to depend on the eventlet library most of them use16:34
clarkbknikolla: https://zuul.opendev.org/t/openstack/build/0b050c2a04b24b6a845df91a061a17d0/log/controller/logs/dstat-csv_log.txt can be fed into something like https://lamada.eu/dstat-graph/ that gives you overall system stats16:34
ShadowJonathani think i'll use some of my python knowledge to kinda see where i can better memory usage to "scale on entity increase, bedrock at 0", but also to kinda get used to the code itself16:34
ShadowJonathanhow much of openstack uses threads, and how much uses asyncio?16:34
clarkbknikolla: there is also https://zuul.opendev.org/t/openstack/build/0b050c2a04b24b6a845df91a061a17d0/log/controller/logs/screen-dstat.txt which may be more readable for identifying memory hogs16:34
clarkbknikolla: once specific users of memory are identified you'll need targetted profiling of that process and we don't really have anything like that yet16:35
clarkbShadowJonathan: much of it is eventlet16:35
knikollaclarkb: appreciate it, that gives me a great starting point.16:35
ShadowJonathandon't know much in-depth about that16:35
fungiShadowJonathan: last i checked almost none of it uses asyncio because that was hard to make compatible across python 2.x and 3.x, but now that python 3.5 is the minimum openstack's supporting more of that may become possible16:35
ShadowJonathanyeah16:36
clarkbknikolla: cinder backup was a big memory user in the past but it looks like we've removed it from our default jobs16:36
ShadowJonathani think that porting much code to use asyncio will help, threads are (from a performance perspective) functionally non-distinguishable, as they constantly pre-emptively rob the GIL from eachother, but cannot run at the same time16:36
clarkb(I'm guessing it may still have memory issues though)16:36
clarkbShadowJonathan: eventlet is cooperative multithreading like asyncio16:37
ShadowJonathanmeanwhile asyncio is coorperative, which means memory usage could only "bounce" between induvidual runs, when objects come in and out of scope16:37
ShadowJonathanhmmmm16:37
clarkbShadowJonathan: just done outside of stdlib and requiring certain hacks16:37
ShadowJonathanyeah, i really need to take a deeper look at it before i can say anything about it16:37
fungiShadowJonathan: to put it into perspective, we only just emerged from our first coordinated release without python 2.x support16:37
ShadowJonathanoh16:37
ShadowJonathanhmmm yeah16:38
ShadowJonathani think i'll focus on contributing patches for performance when spitting through services to see how i can better memory usage16:38
ShadowJonathansolve my own problem, so to speak16:38
knikollafungi: almost, though, right? isn't swift still py2 also?16:38
clarkbya there are a small number of exceptions still16:39
knikollahttps://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html16:39
clarkbswift and then also some supporting libs16:39
fungiknikolla: fair, we said last release was the first one where teams *could* drop existing python 3 support16:39
fungier, drop existing python 2 support i mean16:39
knikollait did go much smoother than i expected though16:40
ShadowJonathanat the very least i think my experience with going extremely low-level with asyncio, and looking at how the GIL operates (as of 3.8), would help with analyzing potential optimizations16:40
fungibut anyway, widescale changes implementing py3k-only functionality are possible now, they'll be slow to implement across such a large and diverse software ecosystem, and we should try to make sure anything we do along those lines is as consistent an approach as we can manage everywhere16:40
ShadowJonathanim not saying im the best at it, just that i think i can help16:40
knikolla........ type hinting...... /me runs away16:41
ShadowJonathannot sure whats controversion about type hinting?16:41
ShadowJonathancontroversial*16:41
fungiit's just a massive undertaking if you want to do it everywhere16:43
ShadowJonathanive been spitting through google search results for 3 minutes, and i *just* got a vague idea of what eventlet is supposed to be, not a good first impression16:43
ShadowJonathanif the top 3 results all don't speak regarding what it actually *is*, then there's something seriously wrong with your messaging16:43
ShadowJonathan(sorry)16:43
clarkbShadowJonathan: yes, its one of those legacy thorns that I think many would be happy to move away from, but also I'm not sure it would be a major difference in memory consumption16:43
fungieventlet is used in a similar manner to greenthreads16:43
clarkbShadowJonathan: its green threads for python16:43
ShadowJonathan> `greenthreads`16:44
ShadowJonathanwhich is another thing i dont know about16:44
clarkbbut preemption tends to be implicitly explicit16:44
ShadowJonathani have to step away from my pc right now, thanks for the explainations, i'll be back in an hour or so16:44
clarkb(you can't preempt at any point only during specific actions)16:44
*** ijolliffe has joined #openstack-tc16:48
ShadowJonathanfungi: would there be will and intent in the dev community to move to a more "modern" framework, though? (eventlets to asyncio)16:49
ShadowJonathanJust asking in case whatever efforts I'll have to move elements of a library to async-based code would be denied based on some agreement or pre-existing consensus16:50
ShadowJonathanI want to contribute, I just don't wanna step on any toes16:50
fungiShadowJonathan: there has been repeated interest, but it would be a large, multi-year effort most likely17:03
fungimaybe not as hard as it was when we needed to maintain compatibility with python 2 though17:03
ShadowJonathanAgreed, I think I'll be able to contribute some of my accumulated experience to that effort then17:03
ShadowJonathanOnce I get comfortable with submitting and switching between change proposals, and get generally comfortable with Gerrit17:04
ShadowJonathanFor now I think I'll simply get some residual ideas as to how individual components of openstack look like, and learn rust this vacation :D17:05
*** ShadowJonathan has quit IRC17:06
*** ShadowJonathan has joined #openstack-tc17:06
*** ralonsoh has quit IRC17:32
clarkbknikolla: oh there is also https://zuul.opendev.org/t/openstack/build/0b050c2a04b24b6a845df91a061a17d0/log/controller/logs/screen-memory_tracker.txt17:44
clarkbknikolla: that shows that the privsep helpers when looked at in aggregate are a decent chunk of memory17:45
clarkbalmost half a gig maybe?17:46
clarkbwe also ahve rootwrap daemons and privsep helpers for neutron. Maybe we can consolidate a bit there and end up with some easy memory wins (no idea how feasible that is)17:53
fungiit's a cycle goal, or at least was17:59
fungiahh, yeah, it's proposed but not yet selected: https://governance.openstack.org/tc/goals/index.html#community-goals18:00
clarkbone upside to improving privsep memory consumption is that it would likely help for any service that uses it18:01
*** ijolliffe has quit IRC19:28
*** ricolin has quit IRC19:36
mnaserShadowJonathan: i think implementing nd moving to asyncio would be very welcome19:51
mnaseras an operator, i am getting hit by a few annoyances of eventlet often in high load envs19:51
ShadowJonathanalright, thanks :D19:51
mnaserShadowJonathan: i'd personally help you chase down reviews :)19:52
ShadowJonathan?19:53
ShadowJonathanwhat do you mean by that? sorry19:53
mnaserShadowJonathan: as in, find cores and ask them to help merge those changes :)19:53
ShadowJonathanahhh okay19:53
ShadowJonathan"cores" as in "core devs"?19:53
mnaserah, yes19:54
fungimore precisely, "core reviewers"19:54
mnasereven more accurately :)19:54
fungiour development workflow has a heavy emphasis on code review19:54
*** e0ne has joined #openstack-tc20:02
ShadowJonathanmnaser: in that case, thanks for the offer, it'll probably take a while before i'll get so far as to actually propose such a change, though20:04
ShadowJonathanin the meantime: where on the opendev review website can i see a simple list of open changes per project?20:04
ShadowJonathandoes it have to be via selection operators in the search bar?20:04
clarkbShadowJonathan: that is one way to do it. We also link to them via the gitea mirrors.20:05
clarkbhttps://opendev.org/openstack/nova/ forexample has a proposed changes link20:06
ShadowJonathanah yeah, that just shows the list with the same search operators, but prefilled20:06
ShadowJonathanthanks20:06
*** e0ne has quit IRC20:22
*** markvoelker has joined #openstack-tc21:23
*** markvoelker has quit IRC21:26
*** markvoelker has joined #openstack-tc21:33
*** markvoelker has quit IRC21:38
*** tkajinam has joined #openstack-tc23:02
*** tosky has quit IRC23:04
*** irclogbot_3 has quit IRC23:16
*** gibi has quit IRC23:16
*** irclogbot_3 has joined #openstack-tc23:23
*** gibi has joined #openstack-tc23:23

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!