Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

goNeTest

, измеряем ширину канала
Статус пользователя Gecko
сообщение 2.6.2022, 18:07
Сообщение #1
Стаж: 7 лет 5 месяцев

Сообщений: 1247
Благодарностей: 520
Полезность: 345

Простая КОНСОЛЬНАЯ программа, позволяет измерить ширину (пропускную способность) транспортного уровня TCP/UDP между хостами просто и эффективно.
Позволяет строить диаграммы и создавать отчёты csv,yaml или в виде картинки png

Может кому и пригодится

Пример использования:
Запустить прослушку на сервере
Прикрепленное изображение
Linux
Код
./goNeTest -l  :8181


Windows
Код
goNeTest.exe  -l  :8181

либо с указанием хоста (доменные имена поддерживаются)
Код
./goNeTest -l  192.168.0.10:8181

для прослушки можно указать несколько хостов/портов через запятую

Запустить в режиме клиента, чтобы выполнить тесты:
Прикрепленное изображение
Код
./goNeTest -hosts  192.168.0.10:8181

для проверки можно указать несколько хостов/портов через запятую.
Код
./goNeTest -hosts  192.168.0.10:8181,192.168.0.11:8181


Прикрепленное изображение

Все доступные аргументы запуска можно посмотреть так:
Код
./goNeTest -h


Флаги запуска

Цитата
-ascii
Построить диаграмму ascii (default true)
-cert string
Файл сертификата TLS (default "cert.pem")
-chart string
Имя выходного файла для рендеринга диаграммы на клиенте
'%d' индекс параллельного подключения к хосту
'%s' это имя хоста: порт
Пример: -chart chart-%d-%s.png (default "chart-%d-%s.png")
-con int
Количество параллельных соединений (default 1)
-csv string
Имя выходного файла для экспорта результатов теста в формате CSV на клиенте
'%d' индекс параллельного подключения к хосту
'%s' это имя хоста: порт
Пример: -csv export-%d-%s.csv
-dp string
Порт по умолчанию (default ":8080")
-export string
Выходное имя файла для экспорта результатов теста YAML на клиенте
'%d' индекс параллельного подключения к хосту
'%s' это имя хоста: порт
Пример: -export export-%d-%s.yaml (default "export-%d-%s.yaml")
-hosts value
Список хостов, разделенных запятыми
вы можете добавить необязательный порт к каждому хосту: host[:port]
-key string
Файл ключа TLS (default "key.pem")
-l value
Список адресов прослушивания, разделенных запятыми
вы можете добавить необязательный хост к каждому порту: [хост]:порт
-la string
Привязать конкретный локальный адрес:порт
Пример: -la 127.0.0.1:3000
-ms float
Лимит пропускной способности в Мбит/с (0 означает неограниченный)
-pc
Подавлять запись клиента
-psr
Подавлять запись сервера
-ri string
Интервал периодического отчета
неуказанная единица времени по умолчанию равна секунде (default "2s")
-td string
Общая продолжительность теста
неуказанная единица времени по умолчанию равна секунде (default "10s")
-tls
Установите значение false, чтобы отключить TLS
-trs int
Размер буфера чтения TCP в байтах (default 1000000)
-tws int
Размер буфера записи TCP в байтах (default 1000000)
-udp
Запустить клиент в режиме UDP
-urs int
Размер буфера чтения UDP в байтах (default 64000)
-uws int
Размер буфера записи UDP в байтах (default 64000)


На Windows программу не тестировал!

В архиве бинарные файлы как для Linux так и для Windows 7 и выше. Только x64!
Скачать архив с программой

Код
      MD5 fd9cbb503360285d0d07bb4fd4d469cc
SHA256 3be6afc9c42f7c50c07e1c15945ff67dd293c21db1874df00942bbd866bcbd63


UPD
Гугл диск ругался на архив (подозрительный файл)

То что сама программа чистая, даю гарантию.
Вот все внешние пакеты которые я использовал
Цитата
"gopkg.in/yaml.v2"
"github.com/fatih/color"
"github.com/common-nighthawk/go-figure"
"github.com/wcharczuk/go-chart"
"github.com/guptarohit/asciigraph"


Исходники пока не прилагаю.

Чтобы не создавать отдельную тему
Реаниматор для HLDS есть смысл писать?
С доп. возможностью бэкапа сервера, по дням месяца (указываем время запуска через запятую), отчет на телегу, ивенты, и многое другое...
Запуск исключительно через параметры

Отредактировал: Gecko, - 2.6.2022, 19:12


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 3.6.2022, 0:57
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 2458
Благодарностей: 1482
Полезность: 773

HostGame.cf
А по русски, в чем отличие от speedtest-cli кроме того что подключение между узлами а не к тестовым серверам? Если я не очень понял то многим читателям тоже будет сложно понять.

Цитата
Реаниматор для HLDS есть смысл писать?

А смысл?
Код
find . -name "*.ztmp" -delete
find ./ -type f -name '*.log' -mtime +30 -delete
tar -czvf ....


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 3.6.2022, 1:39
Сообщение #3
Стаж: 7 лет 5 месяцев

Сообщений: 1247
Благодарностей: 520
Полезность: 345

Metal Messiah,
Цитата
А по русски, в чем отличие от speedtest-cli кроме того что подключение между узлами а не к тестовым серверам? Если я не очень понял то многим читателям тоже будет сложно понять.

Как минимум не нужен python и любые другие зависимости.
Цитата
ТРАНСПОРТНОГО УРОВНЯ TCP/UDP

Кроме всего прочего:
Поддержка: TLS
Для обработки нескольких параллельных потоков используются горутины, не зависит от времени выполнения.
- можно проверять несколько хостов/портов сразу.
Может строить диаграммы.
и экспорт в img
Может ограничивать пропускную способность в Мбит/с

Цитата
Если я не очень понял то многим читателям тоже будет сложно понять.

Возможно ты просто недооцениваешь читателей )


Цитата
find . -name "*.ztmp" -delete
find ./ -type f -name '*.log' -mtime +30 -delete
tar -czvf ....


К чему это?
Я просто сейчас отключил опцию чтения чужих мыслей.

UPD
Включив опцию чтения чужих мыслей, я всё равно не понял к чему это, кроме как для чистки мусора и чего то там ещё связанное с архивированием. Но я думаю ты имел ввиду бэкапирование на bash (к примеру), от этого и оттолкнёмся.

Суть реаниматора который почти готов (точнее он уже прошел тестирование осталось добавить некоторые фичи), только вот я думаю, выкладывать его или нет.
Он написан на Go, хорош тем что потребляет минимум ресурсов, нету утечек памяти, нету висящих (постоянных) соединений, в Go из коробки отличный сборщик мусора, по этому такая программа если всё грамотно написать может работать 24/7. Кроме восстановления работы сервера по причине падения, из-за кривого плагина на пример. прога может делать инкрементальный бэкап в зашифрованный каталог, бэкап только тех файлов что нужно. Может слать отчеты в телегу(куда угодно), поднимать веб-сервер для безопасной быстрой закачки файлов, может выполнять скрипты по времени.

К примеру:
Код
./hldsgo -hlds myhlds.com:27015 -backup 12:30 18:00 22:00  -wl  :8080 (веб-логи с автообновлением) -ws :8181  (запуск вебсервера в текущем каталоге, смотрит в каталог hldsgo который автоматом создаётся и в него падают симлинки с папок sounds, models etc...)   -r /путь/к/скрипту/запуска/сервера/run.sh (по умолчанию ищет скрипт run.sh в текущем каталоге запуска)

если флаг не указать то по умолчанию он отключен.

Пример работы программы
скрины из этой темы
Консоль лог: screen -x cs1


Веб лог с автообновлением на jquery



Отредактировал: Gecko, - 3.6.2022, 7:22


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Eka
сообщение 3.6.2022, 11:02
Сообщение #4
Стаж: 8 лет 4 месяца

Сообщений: 280
Благодарностей: 114
Полезность: 176

Metal Messiah, это копия не спидтеста, а iperf'a.


цитаты великих умов
Цитата
аналог libcurl в Go это net/http
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: