Unix & Linux Stack Exchange
Q&A for users of Linux, FreeBSD and other Unix-like operating systems
Latest Questions
0
votes
1
answers
2412
views
How do I determine the nominal memory bandwidth of my system?
I'm running some (not so new) Linux distribution. I want to determine what the memory bandwidth of my system is - not the effective bandwidth I can get from benchmarking/testing - but the _nominal_ bandwidth, given my board, CPU sockets, memory channels and RAM DIMMs. I should mention that when I tr...
I'm running some (not so new) Linux distribution. I want to determine what the memory bandwidth of my system is - not the effective bandwidth I can get from benchmarking/testing - but the _nominal_ bandwidth, given my board, CPU sockets, memory channels and RAM DIMMs.
I should mention that when I try to figure this out in my head I always get the calculations mixed up: gigabytes verus gigabits, transactions per seconds vs bytes per second, the number of channels vs the number of DIMMs etc.
Note: If possible, assume I don't have utilities such as lshw or inxi installed.
einpoklum
(10753 rep)
Jul 5, 2022, 11:01 AM
• Last activity: Jun 25, 2025, 02:05 PM
2
votes
1
answers
2168
views
Using qdisc prio under htb class
I have 2 services, both operate over the same interface. Service A goal is keep high bandwidth while sending massive amount of data. Service B goal is low latency. Service B packets should **always** be in favor of Service's A packets. I need a TC structure to be able to : - Rate limit both service...
I have 2 services, both operate over the same interface.
Service A goal is keep high bandwidth while sending massive amount of data.
Service B goal is low latency.
Service B packets should **always** be in favor of Service's A packets.
I need a TC structure to be able to :
- Rate limit both service A & B
- Give service B packets priority with 0% latency affect by service A packets.
- Let each service utilize the whole line (or up to its limit) if the other service isn't transmitting.
I tried about an htb structure where I have
class htb classid x
which may be rate/ceil limit and qdisc prio
(say handle y:0) below as child (it shall auto create i.e. classes y:1, y:2 & y:3) and use filters by src ip to redirect packets to y:1 / y:2.
However, it doesn't seem to work.
Both class x
and it's children traffic seem to be 0. (used tc -s class/qdisc/filter show dev dev
to see)
When watching the filters I can clearly see the "hits" so the data was supposed to get redirected correctly.
Here are the commands I execute :
tc qdisc add dev dev root handle 1: htb
tc class add dev dev parent 1:0 classid 1:1 htb rate 10gbit ceil 10gbit
# class x
tc class add dev dev parent 1:1 classid 1:2 htb rate 10gbit ceil 10gbit
# auto creates classes 21:1, 21:2 and 21:3
tc qdisc add dev dev parent 1:2 handle 21: prio
# example for service b filter (latency driven)
tc filter add dev dev parent 1:0 prio 2 u32 match ip src x.x.x.x/32 flowid 21:1
# example for service a filter
tc filter add dev dev parent 1:0 prio 2 u32 match ip src x.x.x.x/32 flowid 21:2
SagiLow
(287 rep)
Jul 18, 2016, 06:48 PM
• Last activity: Jun 24, 2025, 04:02 AM
2
votes
1
answers
2396
views
Limit bandwidth for outgoing/incoming with latency for specific port using TC
I'm trying to limit the incoming and outgoing bandwidth with latency through a specific port using TC but I can't get it to work 100%. I'm not sure if I've done it correctly. When I ping google, the latency is added. I have used iperf to test the bandwidth through port 5001. The bandwidth throttle s...
I'm trying to limit the incoming and outgoing bandwidth with latency through a specific port using TC but I can't get it to work 100%. I'm not sure if I've done it correctly.
When I ping google, the latency is added. I have used iperf to test the bandwidth through port 5001. The bandwidth throttle seems to work on the client where I have applied the settings below (client as iperf -s, incoming), however if I use this client (outgoing) to connect to another one, the bandwidth is restricted to 1-2 mbit instead of the expected 5mbit.
What I would like to, for example, is to have the latency set to 100ms, bandwidth outgoing/incoming throttled to 5mbit, all these rules applied to port 5001. Am I on the correct path or have I misunderstood the concept of tc?
Ip link add name ifb0 type ifb 2>/dev/null || :
Ip link set dev ifb0 up
Tc qdisc add dev ifb0 root handle 1: htb
Tc class dev ifb0 parent 1: classid 1:20 htb rate 5mbit
Tc qdisc add dev ifb0 parent 1:20 handle 20: sfq perturb 10
Tc filter add dev ifb0 parent 1: protocol ip prio 1 basic match ‘cmp(u16 at 2 layer transport eq 5001)’ flowid 1:20
Tc qdisc add dev ens192 root netem delay 200ms
Tc qdisc add dev ens192 ingress
Tc filter add add dev ens192 ingress protocol ip basic match ‘cmp(u16 at 2 layer transport eq 5001)’ action mirred egress redirect dev ifb0
user438686
(21 rep)
Oct 23, 2020, 02:18 PM
• Last activity: Jun 21, 2025, 05:04 PM
3
votes
1
answers
871
views
How do you fetch a large file over http in parallel?
**Question:** Since HTTP supports resuming at an offset, are there any tools (or existing options for commands like wget or curl) that will launch multiple threads to fetch the file in parallel with multiple requests at different file offsets? This could help with performance of each socket is throt...
**Question:**
Since HTTP supports resuming at an offset, are there any tools (or existing options for commands like wget or curl) that will launch multiple threads to fetch the file in parallel with multiple requests at different file offsets? This could help with performance of each socket is throttled separately.
I could write a program to do this, but I'm wondering if the tooling already exists.
**Background:**
Recently I wanted to download a large iso, **but!** ... Somewhere between the server and my internet provider the transfer rate was limited to 100 kilobit! However, I noticed that the first 5 to 10 seconds had great throughput, hundreds of megabits. So I wrote a small bash script to restart after a few seconds:
while ! timeout 8 wget -c http://example.com/bigfile.iso ; do true; done
(I hope it was not my provider . . . But maybe it was. Someone please bring back net neutrality!)
KJ7LNW
(525 rep)
Feb 3, 2023, 01:28 AM
• Last activity: May 9, 2025, 08:03 PM
58
votes
6
answers
67077
views
How can I limit the bandwidth used by a process?
I have a CentOS 5.7 server that will be backing up its files nightly. I am concerned that visitors to the various sites that the server hosts will experience degraded performance while the backup is transferring across the network. Is it possible to limit a process's maximum allowed throughput to a...
I have a CentOS 5.7 server that will be backing up its files nightly. I am concerned that visitors to the various sites that the server hosts will experience degraded performance while the backup is transferring across the network.
Is it possible to limit a process's maximum allowed throughput to a network interface? I would like to limit the SSH-based file transfer to only half of my available bandwidth. This could be on the server or client side; that is, I'd be happy to do this on either the client that initiates the connection or the server that receives the connection.
(Unfortunately, I can't add an interface to dedicate to backups. I could increase my available throughput, but that would merely mean that the network transfer would complete faster, but still max the total capacity of the connection while doing it.)
----------
## Some Background
Perhaps some background is in order. Stepping back, I had a problem with not having enough local space to create the backup itself. Enter SSHFS! The backup is saved to what is ostensibly a local drive so that no backup bits are ever on the web server itself.
Why is that important? Because that would seem to invalidate the use of the venerable
rsync --bwlimit
. rsync
isn't actually doing the transfer nor **can** it because I can't even spare the space to save the backup file.
I can hear you ask: "So wait, why do you even need to make a backup file? Why not just rsync
the source files and folders?" Because an annoying thing called "Plesk" is in the mix! This is my client-facing web host which uses Plesk for convenience. As such, I use Plesk to initiate the backups because Plesk adds all sorts of extra magic to the backup that makes consuming it during a restoration procedure very safe.
*sad face*
Wesley
(14723 rep)
Mar 14, 2012, 12:24 AM
• Last activity: Mar 25, 2025, 10:17 AM
7
votes
1
answers
1651
views
How much data transferred per user via SSH over time period
I have an Ubuntu server with approximately 20 users who primarily use it for SSH tunneling. I would like to know if there is any way to determine the amount of data transferred by each user over a specific time period, such as the past week or month.
I have an Ubuntu server with approximately 20 users who primarily use it for SSH tunneling.
I would like to know if there is any way to determine the amount of data transferred by each user over a specific time period, such as the past week or month.
Javad Zamani
(81 rep)
Jun 19, 2023, 03:39 PM
• Last activity: Mar 24, 2025, 06:25 AM
4
votes
0
answers
2511
views
How can I limit bandwidth per connection using tc?
I am new to Linux and `tc` command and I have been looking to limit bandwidth per connection using `tc`. I have a server application that handles requests from clients consisting of I/O operations, and I want each request to reach a maximum speed of 50MB/s if there is enough bandwidth (but I make su...
I am new to Linux and
tc
command and I have been looking to limit bandwidth per connection using tc
. I have a server application that handles requests from clients consisting of I/O operations, and I want each request to reach a maximum speed of 50MB/s if there is enough bandwidth (but I make sure there are not too many parallel requests such that the bandwidth will go lower than 50MB/s per request).
I used tc
to limit bandwidth, but all connections split 50MB/s instead of each connection getting 50MB/s.
tc
commands I tried:
tc qdisc add dev eth4 root netem rate 400mbit
or
sudo tc qdisc add dev eth4 root handle 1: htb default 30
sudo tc class add dev eth4 parent 1: classid 1:1 htb rate 100gbit burst 15k
sudo tc class add dev eth4 parent 1:1 classid 1:10 htb rate 400mbit burst 15k
sudo tc class add dev eth4 parent 1:1 classid 1:20 htb rate 400mbit burst 15k
sudo tc filter add dev eth4 protocol ip parent 1: prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:10
sudo tc filter add dev eth4 protocol ip parent 1: prio 1 u32 match ip src 0.0.0.0/0 flowid 1:20
or, since I am in control of both the server and clients and I know that the server handles clients' requests on port 9000, I tried the following on the client machine:
sudo tc qdisc add dev eth4 root handle 1: prio priomap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
sudo tc qdisc add dev eth4 parent 1:2 handle 20: netem rate 400mbit
sudo tc filter add dev eth4 parent 1:0 protocol ip u32 match ip dport 9000 0xffff flowid 1:2
No solution did what I want. I think I need to create a class for each port through which requests are being sent, but I do not know them beforehand, since they are automatically selected. Is there a way to create these classes "on the go" or another solution?
Ben
(41 rep)
Apr 14, 2022, 12:10 PM
• Last activity: Jan 16, 2025, 07:31 AM
1
votes
0
answers
29
views
Limit internet bandwith for a program
I'm running openSUSE Leap 15.5 on a Dell laptop connected to my broadband router by both Ethernet over power line and Wi-Fi. When I power up my laptop and log in, Internet access is very slow for a while. Investigation reveals that some program is using all the available download bandwidth. Since th...
I'm running openSUSE Leap 15.5 on a Dell laptop connected to my broadband router by both Ethernet over power line and Wi-Fi. When I power up my laptop and log in, Internet access is very slow for a while. Investigation reveals that some program is using all the available download bandwidth. Since the Internet speeds up as soon as YaST tells me how many updates I have available, I suspect that the culprit is YaST checking for updates. Is there a way to limit the amount of Internet bandwidth that a particular program (YaST in this case) is allowed to use so that other activities are not slowed down? I could presumably disable YaST's automatic check for updates, but then I would not get informed when important security updates are available.
Richard Parkins
(191 rep)
Dec 1, 2024, 10:15 AM
37
votes
4
answers
77342
views
Find out network traffic per IP
We have one central server which functions as an internet gateway. This server is connected to the internet, and using iptables we forward traffic and [share the internet connection][1] among all computers in the network. This works just fine. However, sometimes internet gets really slow. Most likel...
We have one central server which functions as an internet gateway. This server is connected to the internet, and using iptables we forward traffic and share the internet connection among all computers in the network. This works just fine.
However, sometimes internet gets really slow. Most likely one of the users is downloading videos or other large files. I want to pinpoint the culprit. I'm thinking of installing a tool that can monitor the network traffic that passes through the server, by IP. Preferably in real time as well as an accumulated total (again by IP). Any tool that is recommended for this? Preferably something in the Ubuntu repositories.
please delete me
(2659 rep)
Apr 18, 2012, 11:19 PM
• Last activity: Sep 6, 2024, 01:57 PM
16
votes
4
answers
9613
views
Is there a tool that can monitor bandwidth usage of a single process?
I've found [a nice monitor][1] which allows me to log a variety of runtime data of a single process. I'm looking for an equivalent that does the same for bandwidth usage. Ideally, the command should look like `bwmon --pid 1 --log init.log`. Is there such? Can it run without admin privileges? [1]: ht...
I've found a nice monitor which allows me to log a variety of runtime data of a single process. I'm looking for an equivalent that does the same for bandwidth usage. Ideally, the command should look like
bwmon --pid 1 --log init.log
. Is there such? Can it run without admin privileges?
tshepang
(67482 rep)
Feb 4, 2011, 05:26 PM
• Last activity: Jun 20, 2024, 09:06 AM
0
votes
2
answers
1378
views
How to create 80MHz hotspot with NetworkManager on linux?
My OS is Archlinux and onboard wifi chip is `MediaTek MT7921` which is a wifi-6 chip. According to [this wiki](https://github.com/morrownr/USB-WiFi/blob/main/home/PCIe_WiFi_Devices.md) MT7921 supports creating 80MHz hotspot on linux. I use command `nmcli device wifi hotspot ssid TestWifi password Te...
My OS is Archlinux and onboard wifi chip is
MediaTek MT7921
which is a wifi-6 chip. According to [this wiki](https://github.com/morrownr/USB-WiFi/blob/main/home/PCIe_WiFi_Devices.md) MT7921 supports creating 80MHz hotspot on linux.
I use command nmcli device wifi hotspot ssid TestWifi password TestPassword ifname wlp6s0 band a channel 165
to create a hotspot. However, scanning it using wifi scanner app on android shows that it only has 20MHz, which is unacceptably slow according to [this answer](https://superuser.com/a/1619103) .
So how to apply 40MHz/80MHz bandwidth to NetworkManager configuration? I cannot find any config option of this from [official documentation](https://networkmanager.dev/docs/api/latest/NetworkManager.conf.html) .
BTW if NetworkManager isn't capable of doing this, is there any other easy tool on linux to create hotspot with specified bandwidth?
The command iw phy phy0 info
shows the detail of this chip:
Wiphy phy0
wiphy index: 0
max # scan SSIDs: 4
max scan IEs length: 482 bytes
max # sched scan SSIDs: 10
max # match sets: 16
Retry short limit: 7
Retry long limit: 4
Coverage class: 0 (up to 0m)
Device supports AP-side u-APSD.
Device supports T-DLS.
Supported Ciphers:
* WEP40 (00-0f-ac:1)
* WEP104 (00-0f-ac:5)
* TKIP (00-0f-ac:2)
* CCMP-128 (00-0f-ac:4)
* CCMP-256 (00-0f-ac:10)
* GCMP-128 (00-0f-ac:8)
* GCMP-256 (00-0f-ac:9)
* CMAC (00-0f-ac:6)
* CMAC-256 (00-0f-ac:13)
* GMAC-128 (00-0f-ac:11)
* GMAC-256 (00-0f-ac:12)
Available Antennas: TX 0x3 RX 0x3
Configured Antennas: TX 0x3 RX 0x3
Supported interface modes:
* managed
* AP
* AP/VLAN
* monitor
* P2P-client
* P2P-GO
Band 1:
Capabilities: 0x9ff
RX LDPC
HT20/HT40
SM Power Save disabled
RX Greenfield
RX HT20 SGI
RX HT40 SGI
TX STBC
RX STBC 1-stream
Max AMSDU length: 7935 bytes
No DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: No restriction (0x00)
HT TX/RX MCS rate indexes supported: 0-15
HE Iftypes: managed
HE MAC Capabilities (0x08011a000040):
+HTC HE Supported
Trigger Frame MAC Padding Duration: 2
OM Control
Maximum A-MPDU Length Exponent: 3
A-MSDU in A-MPDU
HE PHY Capabilities: (0x2270ce120dc0b306423f00):
HE40/2.4GHz
242 tone RUs/2.4GHz
Device Class: 1
LDPC Coding in Payload
HE SU PPDU with 1x HE-LTF and 0.8us GI
NDP with 4x HE-LTF and 3.2us GI
STBC Tx <= 80MHz
STBC Rx <= 80MHz
Full Bandwidth UL MU-MIMO
Partial Bandwidth UL MU-MIMO
DCM Max Constellation: 2
DCM Max Constellation Rx: 2
SU Beamformee
Beamformee STS <= 80Mhz: 3
Ng = 16 SU Feedback
Ng = 16 MU Feedback
Codebook Size SU Feedback
Codebook Size MU Feedback
Triggered CQI Feedback
Partial Bandwidth Extended Range
PPE Threshold Present
Power Boost Factor ar
HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
20MHz in 40MHz HE PPDU 2.4GHz
DCM Max BW: 1
Longer Than 16HE SIG-B OFDM Symbols
Non-Triggered CQI Feedback
TX 1024-QAM
RX 1024-QAM
RX Full BW SU Using HE MU PPDU with Compression SIGB
RX Full BW SU Using HE MU PPDU with Non-Compression SIGB
HE RX MCS and NSS set <= 80 MHz
1 streams: MCS 0-11
2 streams: MCS 0-11
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
HE TX MCS and NSS set <= 80 MHz
1 streams: MCS 0-11
2 streams: MCS 0-11
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
PPE Threshold 0x39 0x1c 0xc7 0x71 0x1c 0x07
EHT Iftypes: managed
EHT MAC Capabilities (0x0000):
EHT PHY Capabilities: (0x0000000000000000):
EHT MCS/NSS: (0x):
EHT bw=20 MHz, max NSS for MCS 0-7: Rx=0, Tx=0
EHT bw=20 MHz, max NSS for MCS 8-9: Rx=0, Tx=0
EHT bw=20 MHz, max NSS for MCS 10-11: Rx=0, Tx=0
EHT bw=20 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
HE Iftypes: AP
HE MAC Capabilities (0x00011a081044):
+HTC HE Supported
BSR
OM Control
Maximum A-MPDU Length Exponent: 3
BQR
A-MSDU in A-MPDU
OM Control UL MU Data Disable RX
HE PHY Capabilities: (0x0220ce120000a000000c00):
HE40/2.4GHz
LDPC Coding in Payload
NDP with 4x HE-LTF and 3.2us GI
STBC Tx <= 80MHz
STBC Rx <= 80MHz
Full Bandwidth UL MU-MIMO
Partial Bandwidth UL MU-MIMO
DCM Max Constellation: 2
DCM Max Constellation Rx: 2
Partial Bandwidth Extended Range
PPE Threshold Present
TX 1024-QAM
RX 1024-QAM
HE RX MCS and NSS set <= 80 MHz
1 streams: MCS 0-11
2 streams: MCS 0-11
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
HE TX MCS and NSS set <= 80 MHz
1 streams: MCS 0-11
2 streams: MCS 0-11
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
PPE Threshold 0x39 0x1c 0xc7 0x71 0x1c 0x07
EHT Iftypes: AP
EHT MAC Capabilities (0x0000):
EHT PHY Capabilities: (0x0000000000000000):
EHT MCS/NSS: (0x):
EHT bw=20 MHz, max NSS for MCS 0-7: Rx=0, Tx=0
EHT bw=20 MHz, max NSS for MCS 8-9: Rx=0, Tx=0
EHT bw=20 MHz, max NSS for MCS 10-11: Rx=0, Tx=0
EHT bw=20 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
Bitrates (non-HT):
* 1.0 Mbps (short preamble supported)
* 2.0 Mbps (short preamble supported)
* 5.5 Mbps (short preamble supported)
* 11.0 Mbps (short preamble supported)
* 6.0 Mbps
* 9.0 Mbps
* 12.0 Mbps
* 18.0 Mbps
* 24.0 Mbps
* 36.0 Mbps
* 48.0 Mbps
* 54.0 Mbps
Frequencies:
* 2412 MHz (20.0 dBm)
* 2417 MHz (20.0 dBm)
* 2422 MHz (20.0 dBm)
* 2427 MHz (20.0 dBm)
* 2432 MHz (20.0 dBm)
* 2437 MHz (20.0 dBm)
* 2442 MHz (20.0 dBm)
* 2447 MHz (20.0 dBm)
* 2452 MHz (20.0 dBm)
* 2457 MHz (20.0 dBm)
* 2462 MHz (20.0 dBm)
* 2467 MHz (20.0 dBm) (no IR)
* 2472 MHz (20.0 dBm) (no IR)
* 2484 MHz (20.0 dBm) (no IR)
Band 2:
Capabilities: 0x9ff
RX LDPC
HT20/HT40
SM Power Save disabled
RX Greenfield
RX HT20 SGI
RX HT40 SGI
TX STBC
RX STBC 1-stream
Max AMSDU length: 7935 bytes
No DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: No restriction (0x00)
HT TX/RX MCS rate indexes supported: 0-15
VHT Capabilities (0x339071b2):
Max MPDU length: 11454
Supported Channel Width: neither 160 nor 80+80
RX LDPC
short GI (80 MHz)
TX STBC
SU Beamformee
MU Beamformee
RX antenna pattern consistency
TX antenna pattern consistency
VHT RX MCS set:
1 streams: MCS 0-9
2 streams: MCS 0-9
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
VHT RX highest supported: 0 Mbps
VHT TX MCS set:
1 streams: MCS 0-9
2 streams: MCS 0-9
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
VHT TX highest supported: 0 Mbps
VHT extended NSS: supported
HE Iftypes: managed
HE MAC Capabilities (0x08011a000040):
+HTC HE Supported
Trigger Frame MAC Padding Duration: 2
OM Control
Maximum A-MPDU Length Exponent: 3
A-MSDU in A-MPDU
HE PHY Capabilities: (0x4470ce120dc0b306423f00):
HE40/HE80/5GHz
242 tone RUs/5GHz
Device Class: 1
LDPC Coding in Payload
HE SU PPDU with 1x HE-LTF and 0.8us GI
NDP with 4x HE-LTF and 3.2us GI
STBC Tx <= 80MHz
STBC Rx <= 80MHz
Full Bandwidth UL MU-MIMO
Partial Bandwidth UL MU-MIMO
DCM Max Constellation: 2
DCM Max Constellation Rx: 2
SU Beamformee
Beamformee STS <= 80Mhz: 3
Ng = 16 SU Feedback
Ng = 16 MU Feedback
Codebook Size SU Feedback
Codebook Size MU Feedback
Triggered CQI Feedback
Partial Bandwidth Extended Range
PPE Threshold Present
Power Boost Factor ar
HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
20MHz in 40MHz HE PPDU 2.4GHz
DCM Max BW: 1
Longer Than 16HE SIG-B OFDM Symbols
Non-Triggered CQI Feedback
TX 1024-QAM
RX 1024-QAM
RX Full BW SU Using HE MU PPDU with Compression SIGB
RX Full BW SU Using HE MU PPDU with Non-Compression SIGB
HE RX MCS and NSS set <= 80 MHz
1 streams: MCS 0-11
2 streams: MCS 0-11
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
HE TX MCS and NSS set <= 80 MHz
1 streams: MCS 0-11
2 streams: MCS 0-11
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
PPE Threshold 0x39 0x1c 0xc7 0x71 0x1c 0x07
EHT Iftypes: managed
EHT MAC Capabilities (0x0000):
EHT PHY Capabilities: (0x0000000000000000):
EHT MCS/NSS: (0x):
EHT bw <= 80 MHz, max NSS for MCS 8-9: Rx=0, Tx=0
EHT bw <= 80 MHz, max NSS for MCS 10-11: Rx=0, Tx=0
EHT bw <= 80 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
HE Iftypes: AP
HE MAC Capabilities (0x00011a081044):
+HTC HE Supported
BSR
OM Control
Maximum A-MPDU Length Exponent: 3
BQR
A-MSDU in A-MPDU
OM Control UL MU Data Disable RX
HE PHY Capabilities: (0x0420ce120000a000000c00):
HE40/HE80/5GHz
LDPC Coding in Payload
NDP with 4x HE-LTF and 3.2us GI
STBC Tx <= 80MHz
STBC Rx <= 80MHz
Full Bandwidth UL MU-MIMO
Partial Bandwidth UL MU-MIMO
DCM Max Constellation: 2
DCM Max Constellation Rx: 2
Partial Bandwidth Extended Range
PPE Threshold Present
TX 1024-QAM
RX 1024-QAM
HE RX MCS and NSS set <= 80 MHz
1 streams: MCS 0-11
2 streams: MCS 0-11
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
HE TX MCS and NSS set <= 80 MHz
1 streams: MCS 0-11
2 streams: MCS 0-11
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
PPE Threshold 0x39 0x1c 0xc7 0x71 0x1c 0x07
EHT Iftypes: AP
EHT MAC Capabilities (0x0000):
EHT PHY Capabilities: (0x0000000000000000):
EHT MCS/NSS: (0x):
EHT bw <= 80 MHz, max NSS for MCS 8-9: Rx=0, Tx=0
EHT bw <= 80 MHz, max NSS for MCS 10-11: Rx=0, Tx=0
EHT bw <= 80 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
Bitrates (non-HT):
* 6.0 Mbps
* 9.0 Mbps
* 12.0 Mbps
* 18.0 Mbps
* 24.0 Mbps
* 36.0 Mbps
* 48.0 Mbps
* 54.0 Mbps
Frequencies:
* 5180 MHz (20.0 dBm)
* 5200 MHz (20.0 dBm) (no IR)
* 5220 MHz (20.0 dBm) (no IR)
* 5240 MHz (20.0 dBm) (no IR)
* 5260 MHz (20.0 dBm) (no IR, radar detection)
* 5280 MHz (20.0 dBm) (no IR, radar detection)
* 5300 MHz (20.0 dBm) (no IR, radar detection)
* 5320 MHz (20.0 dBm) (no IR, radar detection)
* 5500 MHz (20.0 dBm) (no IR, radar detection)
* 5520 MHz (20.0 dBm) (no IR, radar detection)
* 5540 MHz (20.0 dBm) (no IR, radar detection)
* 5560 MHz (20.0 dBm) (no IR, radar detection)
* 5580 MHz (20.0 dBm) (no IR, radar detection)
* 5600 MHz (20.0 dBm) (no IR, radar detection)
* 5620 MHz (20.0 dBm) (no IR, radar detection)
* 5640 MHz (20.0 dBm) (no IR, radar detection)
* 5660 MHz (20.0 dBm) (no IR, radar detection)
* 5680 MHz (20.0 dBm) (no IR, radar detection)
* 5700 MHz (20.0 dBm) (no IR, radar detection)
* 5720 MHz (20.0 dBm) (no IR, radar detection)
* 5745 MHz (20.0 dBm) (no IR)
* 5765 MHz (20.0 dBm) (no IR)
* 5785 MHz (20.0 dBm)
* 5805 MHz (20.0 dBm) (no IR)
* 5825 MHz (20.0 dBm)
* 5845 MHz (disabled)
* 5865 MHz (disabled)
Supported commands:
* new_interface
* set_interface
* new_key
* start_ap
* new_station
* new_mpath
* set_mesh_config
* set_bss
* authenticate
* associate
* deauthenticate
* disassociate
* join_ibss
* join_mesh
* remain_on_channel
* set_tx_bitrate_mask
* frame
* frame_wait_cancel
* set_wiphy_netns
* set_channel
* tdls_mgmt
* tdls_oper
* start_sched_scan
* probe_client
* set_noack_map
* register_beacons
* start_p2p_device
* set_mcast_rate
* connect
* disconnect
* channel_switch
* set_qos_map
* set_multicast_to_unicast
* set_sar_specs
WoWLAN support:
* wake up on disconnect
* wake up on magic packet
* wake up on pattern match, up to 1 patterns of 1-128 bytes,
maximum packet offset 0 bytes
* can do GTK rekeying
* wake up on network detection, up to 10 match sets
software interface modes (can always be added):
* AP/VLAN
* monitor
valid interface combinations:
* #{ managed, P2P-client } <= 2, #{ AP, P2P-GO } <= 1,
total <= 2, #channels <= 2
HT Capability overrides:
* MCS: ff ff ff ff ff ff ff ff ff ff
* maximum A-MSDU length
* supported channel width
* short GI for 40 MHz
* max A-MPDU length exponent
* min MPDU start spacing
Device supports TX status socket option.
Device supports HT-IBSS.
Device supports SAE with AUTHENTICATE command
Device supports scan flush.
Device supports per-vif TX power setting
Driver supports full state transitions for AP/GO clients
Driver supports a userspace MPM
Device supports active monitor (which will ACK incoming frames)
Driver/device bandwidth changes during BSS lifetime (AP/GO mode)
Device supports configuring vdev MAC-addr on create.
Device supports randomizing MAC-addr in scans.
Device supports randomizing MAC-addr in sched scans.
max # scan plans: 1
max scan plan interval: 65535
max scan plan iterations: 0
Supported TX frame types:
* IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
Supported RX frame types:
* IBSS: 0x40 0xb0 0xc0 0xd0
* managed: 0x40 0xb0 0xd0
* AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* mesh point: 0xb0 0xc0 0xd0
* P2P-client: 0x40 0xd0
* P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* P2P-device: 0x40 0xd0
Supported extended features:
* [ RRM ]: RRM
* [ SET_SCAN_DWELL ]: scan dwell setting
* [ BEACON_RATE_LEGACY ]: legacy beacon rate setting
* [ BEACON_RATE_HT ]: HT beacon rate setting
* [ BEACON_RATE_VHT ]: VHT beacon rate setting
* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
* [ ACK_SIGNAL_SUPPORT ]: ack signal level support
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ CAN_REPLACE_PTK0 ]: can safely replace PTK 0 when rekeying
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
* [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
* [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
* [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support
* [ BEACON_RATE_HE ]: HE beacon rate support (AP/mesh)
ArchBug
(15 rep)
Nov 5, 2023, 02:16 PM
• Last activity: May 4, 2024, 04:21 PM
22
votes
8
answers
20432
views
speedtest-cli: ValueError: invalid literal for int() with base 10: ''
On 3 machines I get: ~~~ $ speedtest-cli Retrieving speedtest.net configuration... Traceback (most recent call last): File "/usr/bin/speedtest-cli", line 11, in load_entry_point('speedtest-cli==2.1.2', 'console_scripts', 'speedtest-cli')() File "/usr/lib/python3/dist-packages/speedtest.py", line 198...
On 3 machines I get:
~~~
$ speedtest-cli
Retrieving speedtest.net configuration...
Traceback (most recent call last):
File "/usr/bin/speedtest-cli", line 11, in
load_entry_point('speedtest-cli==2.1.2', 'console_scripts', 'speedtest-cli')()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1986, in main
shell()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1872, in shell
speedtest = Speedtest(
File "/usr/lib/python3/dist-packages/speedtest.py", line 1091, in __init__
self.get_config()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1173, in get_config
ignore_servers = list(
ValueError: invalid literal for int() with base 10: ''
~~~
I have tested one of these machines on two different internet connections with the same result.
Why is it not working?
Ole Tange
(37348 rep)
Apr 10, 2021, 01:39 PM
• Last activity: Mar 8, 2024, 01:36 PM
0
votes
1
answers
695
views
How to get rid of ssh bandwidth limit?
I was playing around with a server I set up myself, running archlinux, and when I tried to retrieve files from it, using scp or rsync, I noticed the download speed was abnormally low, being capped at around 1.1MiB/s, when I didn't met any trouble sending files at 120MiB/s. (I also was able to downlo...
I was playing around with a server I set up myself, running archlinux, and when I tried to retrieve files from it, using scp or rsync, I noticed the download speed was abnormally low, being capped at around 1.1MiB/s, when I didn't met any trouble sending files at 120MiB/s. (I also was able to download files using http at 70 MiB/s)
I then did the following experiment:
LOCAL: $ ssh login@host
REMOTE: $ cat HUGE_FILE
Result: The content of the file is displayed in the terminal, the download speed is about 15MiB/s
LOCAL: $ ssh login@host "cat HUGE_FILE"
Result: The content of the file is also displayed in the terminal, but the download speed is only 1.1MiB/s
(Edit: ssh -t login@host "cat HUGE_FILE"
gives the same result)
It seems there is a specific limit when launching directly a single command, but not in a regular session. I searched all I could but couldn't find some config file enabling such a limit.
So I would be thankful if anyone could advice me on the source of this problem and how to solve it.
Mayeul Lnr
(11 rep)
Jan 30, 2024, 05:32 PM
• Last activity: Jan 30, 2024, 08:02 PM
0
votes
1
answers
524
views
How to measure network transfer speed against a host from the command line?
I want to measure bandwidth against a host from the command line. Many hosts will be on the internet and outside my control. This will serve to test my actual internet connection bandwidth. I am aware that the connection to a site may be slower than my total bandwidth, depending on how things are se...
I want to measure bandwidth against a host from the command line.
Many hosts will be on the internet and outside my control. This will serve to test my actual internet connection bandwidth. I am aware that the connection to a site may be slower than my total bandwidth, depending on how things are set up server side. I am planning to control for this myself, by running the speedtest against several reliable hosts.
Solutions like SCP will not work because I don't have SSH access to google.com.
I will also be using this for hosts on my LAN, which I control. So an ideal solution would be downloading resources from a webpage, and I can run nginx with a dummy website just for the sake of making it compatible with the test method.
My goal is to diagnose my internet connection. I want to compare the bandwidth of my connection to the internet vs. to just my router, and I want to do this many times over time so I can see if there's times of day when it is slow. I know other programs that happen to be running while the speedtest is going may happen to distort results, but I'm willing to deal with that when analyzing the data.
Previously, I used the [Speedtest CLI](https://www.speedtest.net/apps/cli) but this is very limited. It only uses that company's servers, takes a very long time, and I can't use it to test the LAN bandwidth.
Bagalaw
(1085 rep)
Nov 4, 2023, 07:17 PM
• Last activity: Nov 4, 2023, 11:31 PM
2
votes
1
answers
552
views
In KDE System Monitor, why the application-specific network measurements may be missing?
There are two systems running Plasma 5.27.7: Debian testing and openSUSE Tumbleweed. Under openSUSE, System Monitor tracks application-specific network activity, see screenshot: [![System Monitor showing app-specific network activity][1]][1] Under Debian, there are no Download/Upload columns (even i...
There are two systems running Plasma 5.27.7: Debian testing and openSUSE Tumbleweed.
Under openSUSE, System Monitor tracks application-specific network activity, see screenshot:
Under Debian, there are no Download/Upload columns (even in the "Configure columns..." list); the app-specific network chart is present but completely dead.
Why could these features be missing/inactive on Debian?
The versions of System Monitor are also 5.27.7.

Anton K
(351 rep)
Aug 17, 2023, 10:02 PM
• Last activity: Oct 14, 2023, 11:29 PM
0
votes
0
answers
50
views
Not cooking USB3 ports on Linux?
I'm still using an 11" Linux notebook bought in 2016 as a beater and "kitchen workstation". It has a single USB3 which works fine in itself but has a tendency to get cooked. I say cooked because it will happen almost inevitably when I/O over it gets too intensive. As an example: yesterday I copied a...
I'm still using an 11" Linux notebook bought in 2016 as a beater and "kitchen workstation". It has a single USB3 which works fine in itself but has a tendency to get cooked. I say cooked because it will happen almost inevitably when I/O over it gets too intensive.
As an example: yesterday I copied about 260Gb twice using zfs send/receive (comparable to rsync), from an internal HDD to an external SDD and later to an external HDD. Peak speed was about 70MB/s. When I copied a much smaller amount from an internal to an external SSD the operation hung, forcing me to power-cycle the machine because there was no way to kill the process(es) involved (the copy had reached about 141MB/s at an earlier point). The same thing had happened a few days earlier trying to format that same external SSD to NTFS.
I never tried this machine under MSWin so have no idea if this is a hardware issue or rather something at the OS level. The only diagnostic info I get is kernel oopsie dumps in the syslog, about a process being hung.
Kernel in use is 4.14; I tried newer ones but 4.14 seems to be a sweet spot.
Any idea what this can be and how to avoid it?
RJVB
(254 rep)
Sep 30, 2023, 05:15 PM
1
votes
0
answers
388
views
How to set bandwidth limit using linux tc
In my linux router: 1. interface eth1 total bandwidth is 1gbit 2. I want to divide 1140kbit to GroupA, divide 150kbit to GroupB 3. Set users 10.10.10.158, 10.10.21.5, 10.10.21.6 to GroupB 4. Each user has no more than 128kbit bandwidth 5. And three users has no more than 150kbit total bandwidth. Fol...
In my linux router:
1. interface eth1 total bandwidth is 1gbit
2. I want to divide 1140kbit to GroupA, divide 150kbit to GroupB
3. Set users 10.10.10.158, 10.10.21.5, 10.10.21.6 to GroupB
4. Each user has no more than 128kbit bandwidth
5. And three users has no more than 150kbit total bandwidth.
Following are what I set:
sudo tc qdisc del dev eth1 root 2>/dev/null
sudo tc qdisc add dev eth1 root handle 1: htb default 2
sudo tc class add dev eth1 parent 1: classid 1:1 htb rate 1gbit ceil 1gbit
sudo tc class add dev eth1 parent 1:1 classid 1:2 htb rate 10kbps ceil 10kbps
sudo tc class add dev eth1 parent 1:1 classid 1:10 htb rate 1140kbit ceil 1140kbit
sudo tc class add dev eth1 parent 1:1 classid 1:20 htb rate 128kbit ceil 128kbit
sudo tc class add dev eth1 parent 1:20 classid 1:21 htb rate 128kbit ceil 128kbit
sudo tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 10.10.10.158/32 flowid 1:21
sudo tc class add dev eth1 parent 1:20 classid 1:22 htb rate 128kbit ceil 128kbit
sudo tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 10.10.21.5/32 flowid 1:22
sudo tc class add dev eth1 parent 1:20 classid 1:23 htb rate 128kbit ceil 128kbit
sudo tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 10.10.21.6/32 flowid 1:23
However, I found three users total bandwidth is about 376kbit.
What should I do to acheive my goal?
ackema
(11 rep)
Aug 28, 2023, 06:19 AM
1
votes
0
answers
41
views
Transmission rate monitoring tool for lots of interfaces and sort by usage
What tool can I use to easily monitor the transmission rate in a short recent time window of all interfaces and sort them by traffic usage. I have tried `iptraf-ng` which works great except you can't sort in General interfaces statistics.
What tool can I use to easily monitor the transmission rate in a short recent time window of all interfaces and sort them by traffic usage.
I have tried
iptraf-ng
which works great except you can't sort in General interfaces statistics.
Teddy77
(3173 rep)
Apr 26, 2023, 12:00 PM
• Last activity: Apr 26, 2023, 12:54 PM
5
votes
6
answers
780
views
Network monitoring tool
I'm basically looking for a utility that displays which processes are using how much bandwidth, similar to how `top` displays which processes use how much resources.
I'm basically looking for a utility that displays which processes are using how much bandwidth, similar to how
top
displays which processes use how much resources.
tshepang
(67482 rep)
Nov 11, 2010, 06:03 AM
• Last activity: Jan 17, 2023, 06:18 AM
1
votes
0
answers
24
views
Need to measure pairwire (ip based) bandwidth used over time when using TC
I need to measure the datarates of packets between multiple servers. I need pairwise bandwidths between the servers (if possible even the ports), not the overall datarate per interface on each server. **Example output** | Timestamp | Server A to B | Server B to A | Server A to C | Server C to A | |...
I need to measure the datarates of packets between multiple servers. I need pairwise bandwidths between the servers (if possible even the ports), not the overall datarate per interface on each server.
**Example output**
| Timestamp | Server A to B | Server B to A | Server A to C | Server C to A |
| -------- | -------------- | -------------- | -------------- | -------------- |
| 0 | 1 | 2 | 1 | 5 |
| 1 | 5 | 3 | 7 | 1 |
**What I tried or thought of**
1. tcpdump - I was capturing all the packets and looking at
ip.len
for getting the datarates. It worked quite well till I started testing along with TC.
Turns out tcpdump captures packets at a lower layer than TC. So, the bandwidths I measure using this can't see the limit set by TC.
2. netstat - I tried using this by grep
ing the output and look at Recv-Q
and Send-Q
columns. But later I found out that it reports the bytes that have been received and are buffered, waiting for the local process that is using this connection to read and consume them. I won't be able to use them to get bandwidth being used.
3. iftop - Amazing GUI and has all the things I need. But no way to get the output in a good way to process. Might also overwhelm the storage because of the amount of extra text it stores along with.
4. bwm-ng - Gives overall datarate per interface on each server but not pairwise.
Please let me know if there are any other ways to achieve what I need.
Thanks in advance for your help.
Pramodh Rachuri
(11 rep)
Sep 20, 2022, 06:33 AM
• Last activity: Sep 21, 2022, 03:57 PM
Showing page 1 of 20 total questions