1 |
On Sat, Feb 22, 2014 at 9:28 AM, Andrew Savchenko <bircoph@×××××.com> wrote: |
2 |
[snip] |
3 |
> And here we have a design issue. I already pointed this issue in this |
4 |
> discussion: |
5 |
> http://www.mail-archive.com/gentoo-user@l.g.o/msg144144.html |
6 |
> Though it was completely ignored by you. I understand: it is easier |
7 |
> to discuss design in terms of taste than in technical merits. |
8 |
|
9 |
I'm sorry, I was not part of that particular subthread. You are wrong |
10 |
anyway (see below) |
11 |
|
12 |
> Systemd assumes that time required to start service is small (at |
13 |
> microseconds scale). While this is true for widely used simple |
14 |
> setups, this is not true in general case. Service may take seconds or |
15 |
> even minutes to start up (good example are services depending on |
16 |
> enterprise SAN or large databases). |
17 |
|
18 |
Yeah; and systemd needs not to worry about that. The clients |
19 |
connecting have to. Set the clients to wait a reasonable time, and |
20 |
then everybody is happy. |
21 |
|
22 |
> And because systemd never assumes |
23 |
> it can take long time to start we have the following issues possible |
24 |
> in general case: |
25 |
> |
26 |
> 1. Client connections are lost due to timeout when service takes |
27 |
> long time to start. Systemd fakes service to be available while it |
28 |
> isn't still. Thus systemd is not an option for production grade |
29 |
> servers. |
30 |
|
31 |
Again, you can configure that on the clients. |
32 |
|
33 |
> 2. Even if connection timeout is not reached, requests may pale up and |
34 |
> be lost. Loss trigger depends on memory available, thus systemd is |
35 |
> not an option for both embedded setups and production server setups. |
36 |
|
37 |
You realize that if it's embedded, it makes no sense that it receives |
38 |
the godzillion connections necessary for the kernel queue to fill up? |
39 |
And on big iron, you can define the size of the queue; in the kernel, |
40 |
again, this has nothing to do with systemd. You don't even need to |
41 |
recompile your kernel. |
42 |
|
43 |
> As one can see, while systemd socket activation design will work for |
44 |
> many case, |
45 |
|
46 |
Glad to see you at least recognize this; but it can work for all |
47 |
cases. It doesn't have to, though (see below). |
48 |
|
49 |
> it will fail for corner ones and by no means can't be used |
50 |
> in production (where this corner cases have a high chance to rise). |
51 |
|
52 |
You evidently have no idea what are you talking about. |
53 |
|
54 |
First of all, as I said, the "problems" you mention are not problems |
55 |
at all, since slow starting services, by definition, have clients that |
56 |
need to cope with the slow starting (and if they don't, it's a bug in |
57 |
the clients); and because either you are embedded, and therefore you |
58 |
don't expect a godzillion connections, or you are medium size or big |
59 |
iron, and you set your queue size with a kernel knob to be as large as |
60 |
necessary. |
61 |
|
62 |
And secondly, even if those problems were real (which they are not), |
63 |
socket activation *IS OPTIONAL*. It's a feature that systemd supports, |
64 |
*if the admin wants to use it*. If you are in a corner case and you |
65 |
cannot change the timeout of your clients (because they are |
66 |
proprietary, for example), or you are constrained by memory (if you |
67 |
are embedded but anyhow want to handle gracefully a godzillion |
68 |
connections), THEN YOU DON'T USE SOCKET ACTIVATION. |
69 |
|
70 |
"Problem" solved. |
71 |
|
72 |
If you are *really* interested in learning about the advantages of |
73 |
socket activation, read [1]. However, I'm sure that you will not, as |
74 |
time and again in this thread you only have show that you are not even |
75 |
willing to do your homework before you start ranting against systemd; |
76 |
just like you did when you said that libsystemd.so was used in PID 1 |
77 |
[2] (which, of course, you conveniently ignored although I replied |
78 |
specifically to you). |
79 |
|
80 |
Therefore, I'm not going to waste more of my time arguing with someone |
81 |
who doesn't even read the proper documentation. |
82 |
|
83 |
I'm done with you in this thread. |
84 |
|
85 |
Regards. |
86 |
|
87 |
[1] http://0pointer.de/blog/projects/socket-activation.html |
88 |
[2] http://article.gmane.org/gmane.linux.gentoo.user/272840 |
89 |
-- |
90 |
Canek Peláez Valdés |
91 |
Posgrado en Ciencia e Ingeniería de la Computación |
92 |
Universidad Nacional Autónoma de México |