{"id":13586346,"url":"https://github.com/quobyte/network-tester","last_synced_at":"2025-06-30T07:33:44.875Z","repository":{"id":86097818,"uuid":"138162037","full_name":"quobyte/network-tester","owner":"quobyte","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-15T09:48:28.000Z","size":207,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-15T10:40:38.107Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quobyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-06-21T11:34:24.000Z","updated_at":"2025-05-15T09:48:31.000Z","dependencies_parsed_at":"2025-05-15T10:34:09.532Z","dependency_job_id":null,"html_url":"https://github.com/quobyte/network-tester","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/quobyte/network-tester","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quobyte%2Fnetwork-tester","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quobyte%2Fnetwork-tester/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quobyte%2Fnetwork-tester/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quobyte%2Fnetwork-tester/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quobyte","download_url":"https://codeload.github.com/quobyte/network-tester/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quobyte%2Fnetwork-tester/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262731764,"owners_count":23355419,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:05:29.777Z","updated_at":"2025-06-30T07:33:44.846Z","avatar_url":"https://github.com/quobyte.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Network tester #\n\n\nThis is a network tester playbook, which uses HP Netperf and Flent under the hood. The test is based on a mixed TCP/UDP/ICMP workload that is executed over three different client-server set configurations (1xM, Nx1, NxM). This software requires ansible \u003e= 2.4 and python 3.6. The playbook has tested on the following OS platforms: RHEL/CentOS 7.x, Ubuntu 18.04, Rocky 9.\n\n## Installation ##\n\nInstall ansible packages:\n```\n$ ansible-galaxy collection install -r requirements.yaml\n```\n\nAll further dependencies will be installed by the install role of the playbook. Be aware that this includes adding\npackage repositories and installing software from them. See the network_diag_install tasks and defaults for more details.\n\n## Preparations ##\n\nBefore you run the test make sure you can access all hosts via SSH. The user needs to be able to do password-less sudo.\n\nWe recommend using SSH keys for authentication, although passwords also can be used. You may rely on your current SSH client configuration or provide authentication data explicitly in the file `group_vars/netdiag_hosts.yaml`. Refer to [Ansible documentation](https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#list-of-behavioral-inventory-parameters) for further information. Log in once to each host to add hosts to trusted\nhosts.\n\nMake sure that the firewall configuration of all hosts allows pings and TCP connections on ports in the range of 5000-65536.\n\nHost are divided into two sets: clients and servers. The sets may overlap, but since this playbook is about network testing disjoint set configuration is recommended. Populate inventory file accordingly. For a typical Quobyte installation, you would run tests between actual client and server machines, and second test between one half of the servers as clients, and the other half as servers.\n\nTo verify configuration is correct run the following:\n\n```\n$ ansible -i inventory_file -m ping -b all\n```\n\nThe command must produce no errors.\n\nThe playbook includes a Netperf RPM package for RHEL/CentOS 7.x for your convenience. If you would like to provide your own binaries, bear in mind *--enable-demo* option must be supported by Netperf. In that case set `netperf_install: False`.\n\nDue to extensive use of sockets a user on behalf which tests are executed should be granted very high or unlimited file descriptor limits on target hosts. This is typically done by the ansible command execution automatically.\n\n## Test execution ##\n\nTo install dependencies, run the test, and clean up aftewards in one go, run:\n\n```\n$ ansible-playbook -i inventory_file netdiag.yaml\n```\n\nYou can also split that into three phases:\n\n```\n$ ansible-playbook -i inventory_file netdiag.yaml -t install\n$ ansible-playbook -i inventory_file netdiag.yaml -t test\n$ ansible-playbook -i inventory_file netdiag.yaml -t cleanup\n```\n\nTest results are stored on an ansible host at `/tmp/quobyte_netdiag_data`.\n\nCurrent and prospective Quobyte customers may create a [ticket](https://tickets.quobyte.com) and upload test results for further analysis.\n\n\n### Host stack monitoring ###\n\nA stripped down version of the *netdiag* playbook can be used for host stack monitoring under production load. The name of the relevant playbook is *get.kernel.data.yaml*.\n\n```\n$ ansible-playbook -i inventory_file netdiag.yaml -t install\n$ ansible-playbook -i inventory_file get.kernel.data.yaml -e stats_interval=120\n$ ansible-playbook -i inventory_file netdiag.yaml -t cleanup\n```\n\nThe variable *stats_interval* defines period between two consecutive diagnostic probes launched on target hosts. By default it is 60 seconds.\n\n## Legal notice ##\n\nProduct names and brands found in the repository are property of their respective owners. The playbook is distributed under Apache License 2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquobyte%2Fnetwork-tester","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquobyte%2Fnetwork-tester","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquobyte%2Fnetwork-tester/lists"}