Sebastienbo
Occasional Visitor
Jack, & @RMerlin ,for the ookla binary that's available to download, its typically invoked by:
where IFACE is eth0,tun11 and so onCode:/jffs/addons/spdmerlin.d/ookla/speedtest --interface="$IFACE" --format="human-readable" --unit="Mbps"
The help output doesn't suggest one way or the other that core configuration is an option
Code:admin@RT-AC86U:/tmp/home/root# /jffs/addons/spdmerlin.d/ookla/speedtest -h Speedtest by Ookla is the official command line client for testing the speed and performance of your internet connection. Version: speedtest 1.1.1.28 Usage: speedtest [<options>] -h, --help Print usage information -V, --version Print version number -L, --servers List nearest servers -s, --server-id=# Specify a server from the server list using its id -I, --interface=ARG Attempt to bind to the specified interface when connecting to servers -i, --ip=ARG Attempt to bind to the specified IP address when connecting to servers -o, --host=ARG Specify a server, from the server list, using its host's fully qualified domain name -p, --progress=yes|no Enable or disable progress bar (Note: only available for 'human-readable' or 'json' and defaults to yes when interactive) -P, --precision=# Number of decimals to use (0-8, default=2) -f, --format=ARG Output format (see below for valid formats) --progress-update-interval=# Progress update interval (100-1000 milliseconds) -u, --unit[=ARG] Output unit for displaying speeds (Note: this is only applicable for ‘human-readable’ output format and the default unit is Mbps) -a Shortcut for [-u auto-decimal-bits] -A Shortcut for [-u auto-decimal-bytes] -b Shortcut for [-u auto-binary-bits] -B Shortcut for [-u auto-binary-bytes] --selection-details Show server selection details --ca-certificate=ARG CA Certificate bundle path -v Logging verbosity. Specify multiple times for higher verbosity --output-header Show output header for CSV and TSV formats
I know nothing about kernel limits, that's a question for @RMerlin to help us out with (please )!
the built-in ookla binary on the other hand, mentions
in its config, but i must admit i don't see much difference between the built-in ookla at /usr/sbin/ookla and the /jffs/addons/spdmerlin.d/ookla/speedtest when run against the same serversCode:threadnum = "8" packetlength = "32000000"
I'll passthrough your comments to ookla
From what I see in your code, ookla configuration clearly would allow multiple cores to be used.
So the restriction must come from higher
- the shell (very likely)
- the kernel (doubtfull)
- the parent process (likely)
- the scripting environment (very likely)
Using multicores requires Multicores to be NOT restricted (It could have been restricted by setting affinity of a process or thread on one of the 4 ways herabove;
Affinity is the action of choosing a specific processor to allow the process to run in; For example a quad core has 4 cpu's named 0,1,2 and 3
In linux affinity can be set using the command called "cpuset" or "taskset" (so if you find this command somewhere it is worth to check if it is not restricted)
for example "taskset -c 0 mycommand" to use the first core OR "taskset -c 0,1 mycommand" to use the first two cores
You can also look if the kernel is configured for multicores with the command uname -> with parameter -a : SMP should be part of the response of that command (symmetric multi-processing)
If your script is an actual script like python or perl the affinity can also have been set globally in the script config
Ways to set affinity in the shell or scripts are explained in this forum:
How to limit a process to one CPU core in Linux?
How to limit process to one cpu core ? Something similar to ulimit or cpulimit would be nice. (Just to ensure: I do NOT want to limit percentage usage or time of execution. I want to force app (wi...
unix.stackexchange.com
I think you can also use the taskset command to see the current affinity of a process for troubleshooting.
And when affinity was set somewhere you can also break out of it by setting a new affinity for the ookla binary (an affinity that uses more cores or reset the affinity to all cores)
Last edited: