1. 10 Nov, 2017 1 commit
    • Jérome Perrin's avatar
      slaprunner: provide pidfile in config file for slapos node · 7ead3646
      Jérome Perrin authored
      Thanks to !158 , in a slaprunner we can use slapos command:
      ```
      $ slapos supply https://lab.nexedi.com/nexedi/slapos/raw/1.0.19/software/erp5/software.cfg slaprunner
      ```
      works fine to supply a software to "current" webrunner, but building this software with `slapos node software` fails with:
      ```
      $ slapos node software
      2017-10-03 02:46:33 slapos[29536] CRITICAL slapgrid could not write pidfile /opt/slapos/slapgrid-sr.pid
      2017-10-03 02:46:33 slapos[29536] ERROR [Errno 13] Permission denied: '/opt/slapos/slapgrid-sr.pid'
      Traceback (most recent call last):
        File "/opt/slapgrid/f496eadc03f1ac5a0ab1e4ae60bbe972/eggs/slapos.core-1.4.1-py2.7.egg/slapos/cli/entry.py", line 300, in run_subcommand
          result = cmd.run(parsed_args)
        File "/opt/slapgrid/f496eadc03f1ac5a0ab1e4ae60bbe972/eggs/slapos.core-1.4.1-py2.7.egg/slapos/cli/command.py", line 50, in run
          return self.take_action(parsed_args)
        File "/opt/slapgrid/f496eadc03f1ac5a0ab1e4ae60bbe972/eggs/slapos.core-1.4.1-py2.7.egg/slapos/cli/slapgrid.py", line 116, in take_action
          setRunning(logger=self.app.log, pidfile=pidfile)
        File "/opt/slapgrid/f496eadc03f1ac5a0ab1e4ae60bbe972/eggs/slapos.core-1.4.1-py2.7.egg/slapos/grid/utils.py", line 155, in setRunning
          write_pid(logger, pidfile)
        File "/opt/slapgrid/f496eadc03f1ac5a0ab1e4ae60bbe972/eggs/slapos.core-1.4.1-py2.7.egg/slapos/grid/utils.py", line 167, in write_pid
          with open(pidfile, 'w') as fout:
      IOError: [Errno 13] Permission denied: '/opt/slapos/slapgrid-sr.pid'
      ```
      
      because slaprunner's web interface also runs software, it's better both `slapos node software` command and the one from slaprunner web interface uses the same pid file so that they do not run in parallel.
      
      This depends on slapos.core!29
      
      /reviewed-on !235
      7ead3646
  2. 09 Nov, 2017 3 commits
  3. 08 Nov, 2017 2 commits
  4. 07 Nov, 2017 9 commits
  5. 06 Nov, 2017 1 commit
  6. 05 Nov, 2017 3 commits
  7. 04 Nov, 2017 2 commits
  8. 03 Nov, 2017 4 commits
  9. 02 Nov, 2017 1 commit
  10. 30 Oct, 2017 2 commits
  11. 27 Oct, 2017 1 commit
  12. 26 Oct, 2017 1 commit
  13. 25 Oct, 2017 5 commits
    • Kirill Smelkov's avatar
      fixup! v↑ zodbtools (0.0.0.dev4) · 6fc10621
      Kirill Smelkov authored
      9b5d8262 (v↑ zodbtools (0.0.0.dev4)) added zodburi and in turn ZEO
      dependency to neoppod/software-common.cfg because zodburi currently
      non-optionally requires ZEO.
      
      However I forgot to notice that if we always pin ZEO to 4.x it will
      require `transaction < 2` and this will break neoppod/software-zodb5.cfg
      which requires ZODB 5.x and in turn `transaction >= 2`:
      
      	Installing neoppod.
      	Version and requirements information containing transaction:
      	  [versions] constraint on transaction: 2.1.2
      	  Requirement of ZODB==5.3.0: transaction>=2.0.3
      	  Requirement of transaction>=2.0.3: zope.interface
      	  Requirement of ZEO: transaction<2.0.0
      	While:
      	  Installing neoppod.
      	Error: The requirement ('transaction<2.0.0') is not allowed by your [versions] constraint (2.1.2)
      
      We already have ZODB = 4.x in software-common.cfg and software-zodb5.cfg
      overrides it to ZODB = 5.x, but ZEO was left not-overwritten and this
      way there becomes conflicting requirement on transaction.
      
      Fix it by also overriding ZEO in software-zodb5.cfg
      
      /reported-and-reviewed-by @jm
      /reported-on nexedi/slapos!242 (comment 49754)
      6fc10621
    • Eteri's avatar
      Caddy v0.1 · 914f4dbf
      Eteri authored
      Caddy initial version with gowork.cfg
      
      @rafael @kirr 
      
      /reviewed-on nexedi/slapos!244
      914f4dbf
    • Alain Takoudjou's avatar
      [golang14] fix TestParseInLocation test: Install package from latest changes... · 1daeadb7
      Alain Takoudjou authored
      [golang14] fix TestParseInLocation test: Install package from latest changes on upstream go14 branch
      
      https://github.com/golang/go/commit/4d5426a570c2820c5894a61b52e3dc147e4e7925
      
      golang14 is still failing to build on some server, the commit above fix the
      problem on test TestParseInLocation. This is why we install golang14 from upstream go14 branch.
      
      [ kirr: see also relateddiscussion on nexedi/slapos!133 ]
      
      /reviewed-by @kirr
      /reviewed-on nexedi/slapos!245
      1daeadb7
    • Kirill Smelkov's avatar
      neotest: Draft software-release to run NEO/go & friends tests/benchmarks under webrunner · fd43ba62
      Kirill Smelkov authored
      We provide neotest SR which builds current NEO/go together with the
      tools which are needed to run the benchmarks.
      
      The SR does not yet provide automated service to run the tests
      automatically periodically and to upload the results to ERP5 (all marked
      as TODO).
      
      However with present state it provides all the infrastructure for people
      to try to run NEO tests in their webrunner: a `neotest` program is
      installed in buildout top-level bin/ . One should use it to run the
      tests.
      
      An example run output could be seen here:
      
      https://lab.nexedi.com/snippets/258
      
      With benchstat (https://godoc.org/golang.org/x/perf/cmd/benchstat) it can be summarized or compared to another run. Here is e.g. summarization:
      
      ```
      name                                                                 pystone/s
      vifibcloud-onlinenet-hosting-004/pystone                              156k ± 6%
      
      name                                                                 µs/op
      vifibcloud-onlinenet-hosting-004/sha1/py/1024B                        1.71 ± 6%
      vifibcloud-onlinenet-hosting-004/sha1/go/1024B                        2.26 ±73%
      vifibcloud-onlinenet-hosting-004/sha1/py/4096B                        6.39 ± 4%
      vifibcloud-onlinenet-hosting-004/sha1/go/4096B                        5.66 ± 2%
      
      name                                                                 us/op
      vifibcloud-onlinenet-hosting-004/disk/randread/direct/4K-min          75.7 ± 4%
      vifibcloud-onlinenet-hosting-004/disk/randread/direct/4K-avg          95.2 ± 1%
      vifibcloud-onlinenet-hosting-004/disk/randread/pagecache/4K-avg       1.84 ± 0%
      
      name                                                                 time/op
      vifibcloud-onlinenet-hosting-004/disk/randread/pagecache/4K-min      288ns ± 5%
      vifibcloud-onlinenet-hosting-004/disk/randread/pagecache/4K-avg      876ns ± 9%
      
      name                                                                 µs/object
      dataset:wczblk1-8
      vifibcloud-onlinenet-hosting-004/fs1/zhash.py                         22.2 ±11%
      vifibcloud-onlinenet-hosting-004/fs1/zhash.py-P16                     40.6 ±19%
      vifibcloud-onlinenet-hosting-004/fs1/zhash.go                         4.00 ±40%
      vifibcloud-onlinenet-hosting-004/fs1/zhash.go+prefetch128             5.58 ±24%
      vifibcloud-onlinenet-hosting-004/fs1/zhash.go-P16                     3.68 ±88%
      vifibcloud-onlinenet-hosting-004/zeo/zhash.py                          626 ±40%
      vifibcloud-onlinenet-hosting-004/zeo/zhash.py-P16                    2.17k ± 3%
      vifibcloud-onlinenet-hosting-004/neo/py/sqlite/zhash.py                823 ±17%
      vifibcloud-onlinenet-hosting-004/neo/py/sqlite/zhash.py-P16          2.04k ± 3%
      vifibcloud-onlinenet-hosting-004/neo/py/sqlite/zhash.go                666 ± 9%
      vifibcloud-onlinenet-hosting-004/neo/py/sqlite/zhash.go+prefetch128    138 ±10%
      vifibcloud-onlinenet-hosting-004/neo/py/sqlite/zhash.go-P16          1.96k ± 0%
      vifibcloud-onlinenet-hosting-004/neo/py/sql/zhash.py                 1.02k ±71%
      vifibcloud-onlinenet-hosting-004/neo/py/sql/zhash.py-P16             3.09k ± 1%
      vifibcloud-onlinenet-hosting-004/neo/py/sql/zhash.go                   602 ±29%
      vifibcloud-onlinenet-hosting-004/neo/py/sql/zhash.go+prefetch128       213 ±14%
      vifibcloud-onlinenet-hosting-004/neo/py/sql/zhash.go-P16             4.66k ± 1%
      vifibcloud-onlinenet-hosting-004/neo/go/zhash.py                       326 ±32%
      vifibcloud-onlinenet-hosting-004/neo/go/zhash.py-P16                   554 ± 7%
      vifibcloud-onlinenet-hosting-004/neo/go/zhash.go                      39.6 ± 7%
      vifibcloud-onlinenet-hosting-004/neo/go/zhash.go+prefetch128          24.3 ±18%
      vifibcloud-onlinenet-hosting-004/neo/go/zhash.go-P16                   213 ± 6%
      vifibcloud-onlinenet-hosting-004/neo/go(!sha1)/zhash.go               42.8 ±13%
      vifibcloud-onlinenet-hosting-004/neo/go(!sha1)/zhash.go+prefetch128   24.5 ±19%
      vifibcloud-onlinenet-hosting-004/neo/go(!sha1)/zhash.go-P16           70.2 ±62%
      dataset:prod1-1024
      vifibcloud-onlinenet-hosting-004/fs1/zhash.py                         18.8 ±22%
      vifibcloud-onlinenet-hosting-004/fs1/zhash.py-P16                     33.6 ±21%
      vifibcloud-onlinenet-hosting-004/fs1/zhash.go                         3.46 ±25%
      vifibcloud-onlinenet-hosting-004/fs1/zhash.go+prefetch128             5.36 ±25%
      vifibcloud-onlinenet-hosting-004/fs1/zhash.go-P16                     2.56 ±45%
      vifibcloud-onlinenet-hosting-004/zeo/zhash.py                          617 ±23%
      vifibcloud-onlinenet-hosting-004/zeo/zhash.py-P16                    2.19k ± 1%
      vifibcloud-onlinenet-hosting-004/neo/py/sqlite/zhash.py                717 ±46%
      vifibcloud-onlinenet-hosting-004/neo/py/sqlite/zhash.py-P16          2.02k ± 1%
      vifibcloud-onlinenet-hosting-004/neo/py/sqlite/zhash.go                297 ±14%
      vifibcloud-onlinenet-hosting-004/neo/py/sqlite/zhash.go+prefetch128    130 ±10%
      vifibcloud-onlinenet-hosting-004/neo/py/sqlite/zhash.go-P16          1.86k ± 7%
      vifibcloud-onlinenet-hosting-004/neo/py/sql/zhash.py                   680 ±61%
      vifibcloud-onlinenet-hosting-004/neo/py/sql/zhash.py-P16             4.76k ± 1%
      vifibcloud-onlinenet-hosting-004/neo/py/sql/zhash.go                   269 ±13%
      vifibcloud-onlinenet-hosting-004/neo/py/sql/zhash.go+prefetch128       178 ± 8%
      vifibcloud-onlinenet-hosting-004/neo/py/sql/zhash.go-P16             3.03k ± 1%
      vifibcloud-onlinenet-hosting-004/neo/go/zhash.py                       227 ±10%
      vifibcloud-onlinenet-hosting-004/neo/go/zhash.py-P16                   654 ± 5%
      vifibcloud-onlinenet-hosting-004/neo/go/zhash.go                      32.4 ± 8%
      vifibcloud-onlinenet-hosting-004/neo/go/zhash.go+prefetch128          15.5 ±12%
      vifibcloud-onlinenet-hosting-004/neo/go/zhash.go-P16                   261 ±12%
      vifibcloud-onlinenet-hosting-004/neo/go(!sha1)/zhash.go               24.2 ± 1%
      vifibcloud-onlinenet-hosting-004/neo/go(!sha1)/zhash.go+prefetch128   13.9 ±25%
      vifibcloud-onlinenet-hosting-004/neo/go(!sha1)/zhash.go-P16            270 ±10%
      ```
      
      The infrastructure to build Go projects under SlapOS is also introduced along the way
      (was applied separetely as nexedi/slapos@1b540151).
      
      Please see details in the individual commit messages. 
      
      /cc @nexedi 
      
      P.S. the results are noisy becuase under regular webrunner I do not have root and cannot run e.g. `cpupower frequency-set -g performance`.
      
      /reviewed-on nexedi/slapos!242
      fd43ba62
    • Kirill Smelkov's avatar
      neotest: Draft software-release to run NEO/go & friends tests/benchmarks under webrunner · 31fe231f
      Kirill Smelkov authored
      We provide neotest SR which builds current NEO/go together with the
      tools which are needed to run the benchmarks. Go part uses
      just-introduced in previous commit gowork infrastructure.
      
      The SR does not yet provide automated service to run the tests
      automatically periodically and to upload the results to ERP5 (all marked
      as TODO).
      
      However with present state it provides all the infrastructure for people
      to try to run NEO tests in their webrunner: a `neotest` program is
      installed in buildout top-level bin/ . One should use it to run the
      tests.
      
      For example:
      
      	slapuser14@vifibcloud-onlinenet-hosting-004:~/srv/runner/t$ ../software/4db21ec948dce895b38ba93c1def3ab1/bin/neotest
      	Neotest is a tool to functionally test and benchmark NEO.
      
      	Usage:
      
      	        neotest command [arguments]
      
      	The commands are:
      
      	        bench-local     run benchmarks when client and server are both on the same localhost
      	        bench-cluster   run benchmarks when server is local and client is on another node
      
      	        run-client      run client benchmarks against separate server
      	        bench-disk      benchmark local disk (already part of bench-{local,cluster})
      	        bench-cpu       benchmark local cpu  (already part of bench-{local,cluster})
      
      	        deploy          deploy NEO & needed software for tests to remote host
      	        deploy-local    deploy NEO & needed software for tests locally
      
      	        info            print information about a node
      	        info-local      print information about local deployment
      
      	Additional utility commands:
      
      	        cpustat         run a command and print CPU-related statistics
      
      	slapuser14@vifibcloud-onlinenet-hosting-004:~/srv/runner/t$ ../software/4db21ec948dce895b38ba93c1def3ab1/bin/neotest info-local
      	# Thu, 19 Oct 2017 18:13:35 +0300
      	# slapuser14@sd-112617.dedibox.fr (2001:67c:1254:e:8c::1 (+ 20·ipv6) 163.172.70.8 (+ 20·ipv4))
      	# Linux vifibcloud-onlinenet-hosting-004 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux
      	# cpu: Intel(R) Xeon(R) CPU D-1531 @ 2.20GHz
      	# cpu[0-11]: freq: intel_pstate/powersave [.80GHz - 2.70GHz]
      	# cpu[0-11]: idle: acpi_idle/menu: POLL(0μs) C1(1μs) C2(41μs)
      	# cpu: WARNING: frequency not fixed - benchmark timings won't be stable
      	# cpu: WARNING: C-state exit-latency is max 41μs - up to that can add to networked and IPC request-reply latency
      	# md1 (raid0) -> sda3  sdb3
      	# sda: SAMSUNG MZ7LN256  rev 100Q 238.5G
      	# sdb: SAMSUNG MZ7LN256  rev 100Q 238.5G
      	# eth0: Intel Corporation I350 Gigabit Network Connection rev 01
      	# eth0: features: rx tx sg tso !ufo gso gro !lro rxvlan txvlan !ntuple rxhash ...
      	# eth0: coalesce: rxc: 3μs/0f/0μs-irq/0f-irq,  txc: 0μs/0f/0μs-irq/0f-irq
      	# eth0: up, speed=1000, mtu=1500, txqlen=1000, !gro_flush_timeout
      	# eth1: Intel Corporation I350 Gigabit Network Connection rev 01
      	# eth1: features: rx tx sg tso !ufo gso gro !lro rxvlan txvlan !ntuple rxhash ...
      	# eth1: coalesce: rxc: 3μs/0f/0μs-irq/0f-irq,  txc: 0μs/0f/0μs-irq/0f-irq
      	# eth1: down, speed=?, mtu=1500, txqlen=1000, !gro_flush_timeout
      	# Python 2.7.14
      	# go version go1.9.1 linux/amd64
      	# sqlite 3.19.0 (py mod 2.6.0)
      	# mysqld  Ver 10.1.28-MariaDB for Linux on x86_64 (MariaDB Server)
      	# neo             : v1.8-1326-g4d0cd894
      	# zodb            : 4.4.5
      	# zeo             : 4.3.1
      	# mysqlclient     : 1.3.12
      	# wendelin.core   : v0.11-4-g38fbc83
      
      slapuser14@vifibcloud-onlinenet-hosting-004:~/srv/runner/t$ time ../software/4db21ec948dce895b38ba93c1def3ab1/bin/neotest bench-local 2>&1 |tee 1.txt
      ...
      *** FileStorage
      Benchmarkvifibcloud-onlinenet-hosting-004/fs1/zhash.py 1 24.4 µs/object # crc32:1552c530  oid=0..2127  nread=8534126  t=0.052s  # POLL·0 C1·49 C2·853
      Benchmarkvifibcloud-onlinenet-hosting-004/fs1/zhash.py 1 24.6 µs/object # crc32:1552c530  oid=0..2127  nread=8534126  t=0.052s  # POLL·0 C1·63 C2·894
      Benchmarkvifibcloud-onlinenet-hosting-004/fs1/zhash.py 1 20.7 µs/object # crc32:1552c530  oid=0..2127  nread=8534126  t=0.044s  # POLL·0 C1·39 C2·803
      Benchmarkvifibcloud-onlinenet-hosting-004/fs1/zhash.py 1 20.8 µs/object # crc32:1552c530  oid=0..2127  nread=8534126  t=0.044s  # POLL·1 C1·18 C2·629
      Benchmarkvifibcloud-onlinenet-hosting-004/fs1/zhash.py 1 20.7 µs/object # crc32:1552c530  oid=0..2127  nread=8534126  t=0.044s  # POLL·0 C1·12 C2·669
      ...
      31fe231f
  14. 24 Oct, 2017 5 commits