Willy Tarreau | ab3e1d3 | 2007-06-03 14:10:36 +0200 | [diff] [blame] | 1 | ---------- epoll without limits -------- |
| 2 | % time seconds usecs/call calls errors syscall |
| 3 | ------ ----------- ----------- --------- --------- ---------------- |
| 4 | 47.19 2.671077 56 48093 22397 recv |
| 5 | 47.15 2.668840 106 25060 4858 send |
| 6 | 2.19 0.124020 10 12150 epoll_ctl |
| 7 | 1.96 0.110904 286 388 epoll_wait |
| 8 | 0.56 0.031565 47 670 close |
| 9 | 0.19 0.010481 28 380 350 connect |
| 10 | 0.15 0.008650 25 350 socket |
| 11 | 0.14 0.008204 26 320 shutdown |
| 12 | 0.14 0.007655 22 355 35 accept |
| 13 | 0.12 0.006871 10 670 setsockopt |
| 14 | 0.11 0.006194 9 670 fcntl64 |
| 15 | 0.07 0.004148 12 355 brk |
| 16 | 0.04 0.002055 5 389 gettimeofday |
| 17 | ------ ----------- ----------- --------- --------- ---------------- |
| 18 | 100.00 5.660664 89850 27640 total |
| 19 | |
| 20 | |
| 21 | ---------- sepoll without limit -------- |
| 22 | % time seconds usecs/call calls errors syscall |
| 23 | ------ ----------- ----------- --------- --------- ---------------- |
| 24 | 49.43 2.770682 97 28486 3861 send |
| 25 | 46.48 2.605336 53 49317 23434 recv |
| 26 | 2.00 0.111916 206 542 epoll_wait |
| 27 | 0.65 0.036325 12 3030 epoll_ctl |
| 28 | 0.45 0.025282 38 670 close |
| 29 | 0.24 0.013247 34 388 358 connect |
| 30 | 0.17 0.009544 27 350 socket |
| 31 | 0.16 0.008734 27 320 shutdown |
| 32 | 0.11 0.006432 18 357 37 accept |
| 33 | 0.10 0.005699 9 670 setsockopt |
| 34 | 0.08 0.004724 7 670 fcntl64 |
| 35 | 0.08 0.004568 6 767 gettimeofday |
| 36 | 0.06 0.003127 9 356 brk |
| 37 | ------ ----------- ----------- --------- --------- ---------------- |
| 38 | 100.00 5.605616 85923 27690 total |
| 39 | |
| 40 | |
| 41 | ---------- sepoll with send limit only -------- |
| 42 | % time seconds usecs/call calls errors syscall |
| 43 | ------ ----------- ----------- --------- --------- ---------------- |
| 44 | 49.21 2.779349 109 25417 418 send |
| 45 | 46.94 2.651058 54 49150 23368 recv |
| 46 | 1.77 0.099863 264 378 epoll_wait |
| 47 | 0.57 0.032141 14 2351 epoll_ctl |
| 48 | 0.46 0.025822 39 670 close |
| 49 | 0.25 0.014300 37 387 357 connect |
| 50 | 0.19 0.010530 30 350 socket |
| 51 | 0.15 0.008656 27 320 shutdown |
| 52 | 0.14 0.008008 23 354 34 accept |
| 53 | 0.11 0.006051 9 670 setsockopt |
| 54 | 0.10 0.005461 8 670 fcntl64 |
| 55 | 0.07 0.003842 6 604 gettimeofday |
| 56 | 0.06 0.003120 9 358 brk |
| 57 | ------ ----------- ----------- --------- --------- ---------------- |
| 58 | 100.00 5.648201 81679 24177 total |
| 59 | |
| 60 | |
| 61 | ---------- sepoll with send + recv limits -------- |
| 62 | Process 3173 attached - interrupt to quit |
| 63 | Process 3173 detached |
| 64 | % time seconds usecs/call calls errors syscall |
| 65 | ------ ----------- ----------- --------- --------- ---------------- |
| 66 | 49.09 2.802918 105 26771 596 send |
| 67 | 47.72 2.724651 89 30761 728 recv |
| 68 | 1.12 0.063952 55 1169 epoll_wait |
| 69 | 0.47 0.026810 40 676 close |
| 70 | 0.44 0.025358 11 2329 epoll_ctl |
| 71 | 0.21 0.012255 30 403 367 connect |
| 72 | 0.20 0.011135 35 320 shutdown |
| 73 | 0.18 0.010313 29 356 socket |
| 74 | 0.15 0.008614 6 1351 gettimeofday |
| 75 | 0.13 0.007678 21 360 40 accept |
| 76 | 0.13 0.007218 11 676 setsockopt |
| 77 | 0.10 0.005559 8 676 fcntl64 |
| 78 | 0.05 0.002882 9 327 brk |
| 79 | ------ ----------- ----------- --------- --------- ---------------- |
| 80 | 100.00 5.709343 66175 1731 total |
| 81 | |
| 82 | ---------- epoll with send+recv limits ----------- |
| 83 | Process 3271 attached - interrupt to quit |
| 84 | Process 3271 detached |
| 85 | % time seconds usecs/call calls errors syscall |
| 86 | ------ ----------- ----------- --------- --------- ---------------- |
| 87 | 46.96 2.742476 124 22193 send |
| 88 | 46.55 2.718027 98 27730 recv |
| 89 | 2.58 0.150701 11 13331 epoll_ctl |
| 90 | 2.30 0.134350 135 998 epoll_wait |
| 91 | 0.52 0.030520 45 673 close |
| 92 | 0.23 0.013422 42 320 shutdown |
| 93 | 0.19 0.011282 29 386 353 connect |
| 94 | 0.19 0.011063 31 353 socket |
| 95 | 0.12 0.007039 20 359 39 accept |
| 96 | 0.11 0.006629 10 673 fcntl64 |
| 97 | 0.10 0.005920 9 673 setsockopt |
| 98 | 0.09 0.005157 5 999 gettimeofday |
| 99 | 0.05 0.002885 9 335 brk |
| 100 | ------ ----------- ----------- --------- --------- ---------------- |
| 101 | 100.00 5.839471 69023 392 total |
| 102 | |
| 103 | |
| 104 | Conclusion |
| 105 | ---------- |
| 106 | epoll = 89850 syscalls |
| 107 | sepoll = 85923 syscalls |
| 108 | epoll+limits = 69023 syscalls |
| 109 | sepoll+limits = 66175 syscalls |
| 110 | |
| 111 | => limits reduce the number of syscalls by 23% |
| 112 | => sepoll reduces the number of syscalls by 4% |
| 113 | => sepoll reduces the number of epoll_ctl by 83% |
| 114 | => limits reduce the number of epoll_ctl by 24% |
| 115 | => limits increase the number of epoll_wait by 115% |
| 116 | |