summaryrefslogtreecommitdiff
path: root/client
AgeCommit message (Collapse)Author
2019-05-29Merge branch 'master' of github.com:PGPerfFarm/pgperffarmHEADmasterMark Wong
2019-05-23Update client code to install specific componentsMark Wong
The pgbench directory and other utilities have moved around. Compensate by testing if the directory exists and try to install that component.
2018-08-14Online adaptationHongyuan Ma
2018-08-12Upload test results to from client to web serverMark Wong
2018-08-12Merge branch 'master' of https://github.com/PGPerfFarm/pgperffarmMark Wong
2018-08-08Detail optimizationHongyuan Ma
2018-07-31add new field in upload interfaceHongyuan Ma
2018-07-18Save postgres branch, commit, and settings in results jsonMark Wong
2018-06-27add online settingsHongyuan Ma
2018-06-25perfect record detail pageHongyuan Ma
2018-06-24Perfect table rendering in detail pageHongyuan Ma
2018-06-22Add paging functionHongyuan Ma
2018-06-20add uuid fieldHongyuan Ma
2018-06-18update TestRecordListSerializer;add trend field;Hongyuan Ma
2018-06-14add CreateTestRecordSerializerHongyuan Ma
2018-06-06add data upload interfaceHongyuan Ma
2018-06-01Fix calculation of metrics for pgbench resultsMark Wong
2018-06-01Use var for pg user in collectd config templateMark Wong
2018-05-28update .gitignoreHongyuan Ma
2018-02-10Refactor pgbench results outputMark Wong
The idea is that one results document represents a test of one particular commit. Then it contains the results of all the tests run against that commit. I think it makes more sense to restructure the pgbench results to be like: { "pgbench": { "ro": { "results at a scale factor": { "number of clients": { "std": 4389.727756305762, "metric": 41390.590287, "median": 43137.716637, "results": [ { ... pgbench results of a test ... } ... ] }, .... }, "rw": { ... read write test results ... }, ... other tests results }
2018-02-06Update default pgbench and postgresql settingsMark Wong
Make the default settings what we want to be tested. The idea is to minimize setup on the clients.
2018-02-05Use collectd for system and postgres statisticsMark Wong
2018-02-04Move results directory check to start of clientMark Wong
Between the benchmark and collector modules, it's not clear who might have created the output directory first. Leave a warning in the benchmark modules for now, otherwise don't let it prevent the tests from running.
2018-02-01Use https instead of git protocolMark Wong
This is for ease of automated testing. Using git:// can require manual confirmation about updating the ssh known hosts file.
2018-01-31Add support for FreeBSDMark Wong
The memory calculations for pgbench will need to be platform specific. Also the system data collection may have to be platform specific. Thus far, just added conditions so that things will run on FreeBSD now.
2018-01-31Set default directories to /tmpMark Wong
Set the default directories in the client settings.py file to use /tmp. This will make it easier to automate testing by reducing the number of settings to configure.
2018-01-30Set cwd when running pgbenchMark Wong
The output directory is used for the cwd when executing pgbench so that the output files are saved in the results directory.
2018-01-05Add sbin locations to PATH for sysctlMark Wong
The location of sysctl may change depending on the distribution. Try to add all possible paths to the environment.
2018-01-05Add requirements.txt for the clientMark Wong
2018-01-05Force csv.DictWriter to create unix file formatMark Wong
2018-01-05Always write results of a test to results.jsonMark Wong
The idea is to keep things simple by having a directory of results per test, and to have each directory with a consistently named results files.
2018-01-05Capture uname informationMark Wong
It has some things that are not in the sysctl information. Like hardware architecture.
2018-01-05Stop storing log files as jsonMark Wong
Keep the json results document small by saving log information externally. This include: * postgres log * pgbench output * sar output
2018-01-05Fix use of env in call()Mark Wong
The env parameter to call() was clearing the PATH environment to only have the postgres binary install path. Modify only the PATH environment.
2017-12-19Install pgbench from contrib for older versionsMark Wong
Prior to 9.5, pgbench was in contrib.
2017-12-19Alter postgres options on the command lineMark Wong
This allows testing of older versions of postgres. Otherwise only versions of postgres supporting ALTER SYSTEM (9.4+) will work with this client.
2017-12-19Saved timestamp from test startMark Wong
2017-08-04Use python2.7 from environment settingsMark Wong
2017-08-04Pythonic way to check for NoneMark Wong
Also check to make sure files exist before trying to collect them.
2017-08-04Fix check for csv flagMark Wong
2017-08-04Fix handling of csv optionMark Wong
2017-08-04pep8 coding styleMark Wong
2017-02-27also add CSV output to pgbenchTomas Vondra
2017-02-27add support for collecting results into simple CSV fileTomas Vondra
Originally the results were collected into a JSON format, which is not very convenient when running ad-hoc benchmarks.
2017-02-27add shebang explicitly invoking Python 2.7Tomas Vondra
The code is not fully compatible with Python 3.x (although it should not be a big deal to make that happen).
2017-02-27explicitly flush stdout in log()Tomas Vondra
Otherwise the messages may get buffered for a quite long time, which is annoying, particularly in multi-process system.
2017-02-27fix lockups in PostgreSQL collectorTomas Vondra
When the workers produce results and return them through a queue, we need to first drain the queue and then wait for the thread to join(). Otherwise it seems to lock up - the join() call with wait as long as there are items in the queue. This also happens because we do both things (reading from queue and waiting for the thread) in the same thread.
2017-02-27open connections in a way resilient to temporary failuresTomas Vondra
In case of connection failure (e.g. a backend getting terminated by OOM killer and taking down the whole server), the workers failed with an exception without putting a result into the queue, leading to hangs. This fixes that by making the workers resilient to connection issues by catching the exceptions and terminating nicely. Also, we retry connection several times, to continue with benchmarking even after OOM hits us unexpectedly, etc.
2017-02-27Check configuration before running any benchmarksTomas Vondra
Before doing any heavy-lifting, check existence of directories, binaries and some other sanity checks.
2017-02-27Fix CWD when running 'git pull', fix parameters.Tomas Vondra
When refreshing a reporitory clone, running 'git pull $dir' does not do the trick - it assumes the CWD is the clone, and imports data from repository at $dir. So we need to set CWD properly and do just 'git pull'. Also, prefix class members with 'self'.