<div dir="ltr">Hi George,<br><br>Thank you for you answers.<br><br>Is it possible to do any performance tests for python module for unbound?<br>I would like to get something like that:<br><a href="https://stackoverflow.com/questions/582336/how-can-you-profile-a-python-script">https://stackoverflow.com/questions/582336/how-can-you-profile-a-python-script</a><br><br><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пн, 4 нояб. 2019 г. в 19:22, George Thessalonikefs via Unbound-users <<a href="mailto:unbound-users@nlnetlabs.nl">unbound-users@nlnetlabs.nl</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Eduard,<br>
<br>
There are two issues here:<br>
<br>
1. There is a bug in unbound-checkconf that does not treat multiple<br>
Python instances as valid configuration<br>
(<a href="https://github.com/NLnetLabs/unbound/issues/103" rel="noreferrer" target="_blank">https://github.com/NLnetLabs/unbound/issues/103</a>).<br>
If you want you could bypass that by editing your systems's service file<br>
and commenting out the `unbound-checkconf` invocation.<br>
<br>
2. The module configuration lists the modules that will be called *in<br>
series* for a given query. The multiple Python instances will allow for<br>
different logic to exist in two or more Python modules. It won't make<br>
sense to run the same Python script (logic) in another Python instance,<br>
and what you are trying to achieve (parallelization) is not possible<br>
that way.<br>
<br>
When the Python module is enabled, unbound's performance is hindered by<br>
Python's performance (more so depending on the logic/cost of the custom<br>
code).<br>
<br>
Best regards,<br>
-- George<br>
<br>
On 03/11/2019 19:36, Eduard Ahmatgareev via Unbound-users wrote:<br>
> How is it possible to enable multiple python instances for get  more<br>
> performance?<br>
> <br>
> I tried to add next:<br>
> module-config: "validator python python iterator"<br>
> <br>
> python:<br>
>     python-script: "/etc/unbound/dnsrabbit.py"<br>
>     python-script: "/etc/unbound/dnsrabbit.py"<br>
> <br>
> but after restart unbound, I got: <br>
>  unbound-checkconf[15820]: [1572806018] unbound-checkconf[15820:0] fatal<br>
> error: module conf 'validator python python iterator' is not known to work<br>
> <br>
> <br>
> I use our own custom python script for extend unbound functionality, but<br>
> unfortunately after testing I found that unbound can process only 14k<br>
> queries per second on ec2 amazon instance<br>
> c4.xlarge Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz<br>
> <br>
> num-threads: 8<br>
> <br>
> <br>
> Version 1.9.4<br>
> <br>
> Configure line: --build=x86_64-redhat-linux-gnu<br>
> --host=x86_64-redhat-linux-gnu --program-prefix=<br>
> --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr<br>
> --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc<br>
> --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64<br>
> --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib<br>
> --mandir=/usr/share/man --infodir=/usr/share/info --with-pythonmodule<br>
> --with-pyunbound PYTHON=/usr/bin/python2 --with-libevent --with-pthreads<br>
> --with-ssl --disable-rpath --disable-static<br>
> --with-conf-file=/etc/unbound/unbound.conf<br>
> --with-pidfile=/var/run/unbound/unbound.pid --enable-sha2 --disable-gost<br>
> --enable-ecdsa --with-rootkey-file=/var/lib/unbound/root.key<br>
> Linked libs: libevent 2.0.21-stable (it uses epoll), OpenSSL 1.0.2k-fips<br>
>  26 Jan 2017<br>
> Linked modules: dns64 python respip validator iterator<br>
> <br>
> <br>
</blockquote></div>