2020-01-10 04:15:17 UTC - Ali Tariq: Hi @Rodric Rabbah, i further ran the same 
setup and saw a weird result i can not explain. I have a total `container 
memory pool` of 1000. I set the `actionInvokesConcurrent` to 11000 - which 
means if we send a very big load, at any point the system can at have 1000 
actions running and 10000 actions queued up at the very least (please let me 
know if there is a flaw in my understanding) - queuing can be more than 10k 
though. In the experiment, i send `100 requests` every second for 1000s & 
each function runs for 15 seconds. So, at a stable rate, i am sending 
approximately 33 extra requests than what my `container pool` can handle. 
{1000/15 = 66.66 requests, will provide a stable 1000 concurrency limit }. This 
means that the queue keeps increasing at 33 requests per second. After 550s, we 
see a big drop, as if the whole queue (& all the queued requests) got 
dropped. At the time of big dip, the queue length must be approximately 18k. 
Can you think of a reason why this could be happening? In standard case, if the 
queue becomes full, it should just drop the new arriving requests but still 
keep servicing the queued requests!- hence there shouldn't be this big dip. I 
should also mention, in total- i sent 100k requests and about 80k finished 
successfully which roughly translates to the queue size (~18k) be dropped 
completely.
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578629717028900?thread_ts=1578504210.020500&cid=C3TPCAQG1
----
2020-01-10 09:15:22 UTC - Ali Tariq: Hi guys, i have a question regarding the 
action container allocation policy in Openwhisk. Generally, i would expect a 
bin filling policy - where new action containers are always created as long as 
there is unallocated `container memory pool` remaining. Only after that, it 
should start destroying the in-memory containers to make new ones. For example, 
if i have a  `container memory pool` of 200. i run 80 `actionA` followed by 80 
`actionB`, the container pool should have 80 containers of `actionA` & 
`actionB` each in-memory(warm containers). If i then invoke 80 `actionC` , 
since only 40 can be created from existing `container pool` , 40 existing warm 
containers (`actionA` or `actionB` ) will be destroyed to make new `actionC` 
containers. This behavior is consistent with `docker-compose` deployment of 
OpenWhisk (i tested the above example and the results were consistent). But on 
`kube-deploy` Openwhisk, it starts destroying in-memory containers even before 
it exhausts the `container memory pool` . For example, my setup contains a 
`container memory pool` of 1000. I invoked 400 `actionA` and after they 
finished execution i checked- there were 400 warm pods for `actionA` in-memory. 
Then i invoked 400 `actionB` and again after successful execution, checked the 
in-memory state. There were 400 `actionB` pods but only 247 `actionA` pods. Why 
does it start destroying pods before it is required? and is there a way to make 
it behave like the above bin-filling policy from `docker-compose` deployment?
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578647722045200?thread_ts=1578647722.045200&cid=C3TPCAQG1
----
2020-01-10 10:44:51 UTC - Michele Sciabarra: @chetanm @Markus Thömmes @Rodric 
Rabbah can you review my latest fixes for the standalone openwhisk docker image?
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578653091046800
----
2020-01-10 11:49:41 UTC - Michele Sciabarra: The build for the openwhisk 
standalone runtime failed for this reason
```size of tarball /tmp/tmp_Ka6wx.tar.gz is 1.1 MB
SHA256 hash of tarball is 
c1f9139dd938b7df2582329982505aef0194e28fe27ec2dc5bdc626464c52437
Uploading to Box...
Posting result <Response [500]>
{
  "error": "File upload failed."
}```
<https://travis-ci.org/apache/openwhisk/jobs/635198503?utm_medium=notification&amp;utm_source=github_status>
any idea?
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578656981047900?thread_ts=1578656981.047900&cid=C3TPCAQG1
----
2020-01-10 12:07:04 UTC - Daniel Varsanyi: Hi! I have a rather weird use case. 
I'd like to run arbitrary functions that are created dynamically. Therefore the 
same function would rarely get called. Is openwhisk suitable for this task? The 
container pre-warming and code injection into containers would be super useful 
to me, but I wouldn't want to store the functions..
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578658024052800?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 13:05:32 UTC - Rodric Rabbah: would you be ok with storing the code 
temporarily say in an object store of your own and providing a signed url to 
the code?

or do you want to submit inline code (how big is the the code?)
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578661532052900?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 13:06:05 UTC - Rodric Rabbah: you can run network accessible 
functions without storing them - you can try this for example

<https://js.nimbella.io/github/apache/incubator-openwhisk/master/tests/dat/actions/echo.js>
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578661565053100?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 13:26:10 UTC - Daniel Varsanyi: We're evaluating options for a 
solution HR can use to test candidates. So we would have the function 
signatures and we would inject the candidates code and then inject the whole 
thing into some isolated environment (preferably a container of some sort), 
where it can be executed safely. Storing the code temporarily could work, if 
there's no way around that. I must admit I don't quite get the network 
accessible function.
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578662770053300?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 13:29:33 UTC - Rodric Rabbah: you can create a function from the 
candidate code, run it, then delete the function - that would be simplest

if you’re willing to store the code temporarily somewhere just not in the 
openwhisk database, then you can provide a url to the code (network accessible) 
and have a runner fetch the code and run it (as in the example above)
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578662973053500?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 13:29:52 UTC - Rodric Rabbah: say the candidate code lived on github 
for example like here 
<https://github.com/rabbah/functions/blob/master/resize-url.js>
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578662992053700?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 13:30:13 UTC - Rodric Rabbah: you can run that code straight out of 
github like this
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578663013053900?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 13:30:21 UTC - Rodric Rabbah: 
```<https://js.nimbella.io/github.com/rabbah/functions/blob/master/resize-url.js?url=https://images.pexels.com/photos/45201/kitty-cat-kitten-pet-45201.jpeg>```

https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578663021054100?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 13:30:42 UTC - Rodric Rabbah: where the path to the file on github 
is passed to the function and then any parameters as `?query` in this case
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578663042054300?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 13:31:32 UTC - Daniel Varsanyi: I see. That was very helpful, thank 
you!
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578663092054500?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 13:31:38 UTC - Rodric Rabbah: yw
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578663098054700?thread_ts=1578658024.052800&cid=C3TPCAQG1
----
2020-01-10 14:31:36 UTC - Dave Grove: The build actually failed because a test 
failed: <https://travis-ci.org/apache/openwhisk/jobs/635198503#L7788>
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578666696054900?thread_ts=1578656981.047900&cid=C3TPCAQG1
----
2020-01-10 14:32:27 UTC - Dave Grove: Box upload has been broken for a month or 
so because our box folder is full.  @Rodric Rabbah is looking into it.   But 
the script is setup so that log upload failing is a non-fatal error
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578666747055200?thread_ts=1578656981.047900&cid=C3TPCAQG1
----
2020-01-10 17:56:28 UTC - Michele Sciabarra: I removed the “upload” of the new 
openwhisk/standalone and now it is green
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578678988055600?thread_ts=1578656981.047900&cid=C3TPCAQG1
----
2020-01-10 17:56:29 UTC - Michele Sciabarra: I guess there is something to do 
to have a new image upload - maybe creating it in the first place on docker ub?
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578678989055800?thread_ts=1578656981.047900&cid=C3TPCAQG1
----
2020-01-10 17:56:29 UTC - Michele Sciabarra: maybe you have to create the image 
in dockerhub in the first place before uploading?
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578678989056000?thread_ts=1578656981.047900&cid=C3TPCAQG1
----
2020-01-10 20:57:50 UTC - Ali Tariq: On the same note, it seems like Openwhisk 
scheduler is not completely aware of the in-memory state. If i invoke 400 
`actionA` from a fresh start (there are no in-memory pods), i get to see 400 
`actionA` pods in openwhisk-namespace. If i redo 400 more invocations of the 
same `actionA` , instead of reusing all the existing in-memory pods - it 
creates a bunch of new ones! (after seconds run, i have 600 `actionA` pods). 
Shouldn't it try to re-use the warm pods before creating new ones?
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578689870056200?thread_ts=1578647722.045200&cid=C3TPCAQG1
----
2020-01-10 21:56:58 UTC - Bilal: Quick question, I've read in an article 
<https://medium.com/openwhisk/squeezing-the-milliseconds-how-to-make-serverless-platforms-blazing-fast-aea0e9951bd0>
 about pre-warmed containers, is this still the case or configurable at all? 
Can I choose which kinds/runtimes are prewarmed?
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578693418057200?thread_ts=1578693418.057200&cid=C3TPCAQG1
----
2020-01-10 22:18:02 UTC - Rodric Rabbah: yes, it’s done at deployment time by 
amending the runtimes manifest
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578694682057700?thread_ts=1578693418.057200&cid=C3TPCAQG1
----
2020-01-10 22:18:02 UTC - Rodric Rabbah: 
<https://github.com/apache/openwhisk/blob/662da835c9f0a6dd3b45d9ffd0f48fe45f5d1e08/ansible/files/runtimes.json#L58-L63>
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578694682057900?thread_ts=1578693418.057200&cid=C3TPCAQG1
----
2020-01-10 22:27:14 UTC - Bilal: Thanks, so I could basically add that 
stemCells block to the python3 kind and always have 2 prewarmed python3 
runtimes? I'm enjoying learning/working with openwhisk a lot, although it is 
quite a bit to wrap my head around.  We are very close to using in production 
to ease certain workloads.
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578695234058100?thread_ts=1578693418.057200&cid=C3TPCAQG1
----
2020-01-10 22:27:47 UTC - Rodric Rabbah: excellent to hear - yes that’s all it 
would take
+1 : Bilal
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578695267058300?thread_ts=1578693418.057200&cid=C3TPCAQG1
----
2020-01-10 22:28:27 UTC - Rodric Rabbah: consider contributing your logo to the 
website? <https://openwhisk.apache.org/community.html>
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578695307058600?thread_ts=1578693418.057200&cid=C3TPCAQG1
----
2020-01-10 22:29:07 UTC - Bilal: I will pass it along upstream.
https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1578695347058800?thread_ts=1578693418.057200&cid=C3TPCAQG1
----

Reply via email to