Bug 1438497
| Summary: | [scale] - tasks rejection by thread pool util | ||
|---|---|---|---|
| Product: | [oVirt] ovirt-engine | Reporter: | Eldad Marciano <emarcian> |
| Component: | Backend.Core | Assignee: | Martin Perina <mperina> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Eldad Marciano <emarcian> |
| Severity: | high | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 4.1.1.2 | CC: | bugs, lveyde, mperina, pkliczew |
| Target Milestone: | ovirt-4.1.2 | Keywords: | Performance |
| Target Release: | 4.1.2 | Flags: | rule-engine:
ovirt-4.1+
rule-engine: blocker+ |
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-05-23 08:18:31 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | Infra | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Eldad Marciano
2017-04-03 14:20:45 UTC
Interesting find Eldad. It looks like ThreadPoolUtil rejects the tasks like quartz pool before due to bounded queue size [1]. We may want to fix it in the same way. [1] https://github.com/oVirt/ovirt-engine/blob/master/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/threadpool/ThreadPoolUtil.java#L41 We will add the same policy to block the thread which is trying to add a new task into exhausted queue as we used in Quartz thread pool. This will slow down engine (task are not rejected but waiting), but we really need to take a look at related storage flow in 4.2 and optimized it not to require that many threads. (In reply to Martin Perina from comment #3) > We will add the same policy to block the thread which is trying to add a new > task into exhausted queue as we used in Quartz thread pool. This will slow > down engine (task are not rejected but waiting), but we really need to take > a look at related storage flow in 4.2 and optimized it not to require that > many threads. do you mind if I'll open a new bug about slow storage commands for 4.2 in order to tack it accordingly. (In reply to Eldad Marciano from comment #4) > (In reply to Martin Perina from comment #3) > > We will add the same policy to block the thread which is trying to add a new > > task into exhausted queue as we used in Quartz thread pool. This will slow > > down engine (task are not rejected but waiting), but we really need to take > > a look at related storage flow in 4.2 and optimized it not to require that > > many threads. > > do you mind if I'll open a new bug about slow storage commands for 4.2 in > order to tack it accordingly. Feel free to do so ... verification status bug was verified with vdsmfake 250 hosts, 1 SD, 2350 vms, 4340 overall disks. on top of this topology we created vms in bulks of 10, 50, 90. no tasks were rejected. also we simulate high latency with vdsmfake in order stress more the utils queue. we'll keep playing more with stressing the queue and will move this bug to verified ASAP. currently there is no evidence for tasks rejection. ==== engine error rate ==== JdbcConnectionException - 0 Tasks rejected - 0 VM not responding - 0 Thread interrupts - 0 this bug has verified on top of rhv 4.1.2.1-0.1.el7. topology: 250 hosts, 1 SD, 2846 VMs, 4847 disks. we stressed the engine to more than 100 tasks per second, no tasks were rejected. moving this bug to verified. |