mirror of
git://f0xx.org/android_cast
synced 2026-07-29 05:37:52 +03:00
be sync and infra sync
This commit is contained in:
@@ -59,3 +59,61 @@ mtr -rwzc 50 134.17.26.161
|
||||
```
|
||||
|
||||
That catches path issues ping from the router cannot see.
|
||||
|
||||
## `monstro-netdiag.sh` (bottleneck + iptables + processes)
|
||||
|
||||
Run on the **Debian edge router** (`10.7.6.228`, same host as `wan-snapshot.sh`) when infra feels stuck.
|
||||
|
||||
```bash
|
||||
sudo cp examples/network/monstro-netdiag.sh /usr/local/bin/
|
||||
sudo chmod +x /usr/local/bin/monstro-netdiag.sh
|
||||
```
|
||||
|
||||
**Cron** (pair with wan-snapshot):
|
||||
|
||||
```cron
|
||||
*/15 * * * * root /usr/local/bin/wan-snapshot.sh >>/var/log/wan-quality.cron.log 2>&1
|
||||
*/15 * * * * root /usr/local/bin/monstro-netdiag.sh --snapshot >>/var/log/monstro-netdiag.cron.log 2>&1
|
||||
```
|
||||
|
||||
**When sluggish** (run immediately, compare to a “good” capture):
|
||||
|
||||
```bash
|
||||
sudo monstro-netdiag.sh --full # ping + conntrack + iptables -v + top CPU
|
||||
sudo monstro-netdiag.sh --watch 30 # stream one-liners every 30s
|
||||
monstro-netdiag.sh --tail 48
|
||||
```
|
||||
|
||||
One-line log (`/var/log/monstro-netdiag.log`) includes: `load1`, `cpu_busy`, `conntrack=cur/max (%)`, `top=process`, `fe_avg_ms`, `wan_avg_ms`, iface drops.
|
||||
|
||||
### Why intermittent (excluding ISP)?
|
||||
|
||||
Your data showed **WAN ~9 ms** but **FE ~230 ms** — classic **intra-LAN** flapping:
|
||||
|
||||
| Cause | What to look for in `--full` |
|
||||
|-------|------------------------------|
|
||||
| **conntrack table full** | `conntrack` >80%, new flows stall |
|
||||
| **Router CPU / softirq** | high `cpu_busy`, `softnet dropped` |
|
||||
| **iptables rule cost** | FORWARD/NAT rules with huge packet counts |
|
||||
| **FE/BE VM host busy** | FE ping high from router, low load on router |
|
||||
| **ARP/route flap** | `ip neigh` INCOMPLETE/FAILED for 10.7.0.10 |
|
||||
| **Bufferbloat on LAN** | rising `fe_avg_ms` under load, 0% loss |
|
||||
|
||||
Good vs bad: save one `--full` output on a rocketship evening and diff when stuck.
|
||||
|
||||
### Safe checks on monstro (read-only)
|
||||
|
||||
```bash
|
||||
# conntrack pressure
|
||||
cat /proc/sys/net/netfilter/nf_conntrack_count
|
||||
cat /proc/sys/net/netfilter/nf_conntrack_max
|
||||
|
||||
# hottest iptables rules (no changes)
|
||||
iptables -L FORWARD -n -v --line-numbers | sort -k1 -rn | head
|
||||
iptables -t nat -L PREROUTING -n -v --line-numbers | head -20
|
||||
|
||||
# who eats CPU during slowness
|
||||
ps -eo pcpu,pmem,comm --sort=-pcpu | head
|
||||
```
|
||||
|
||||
Do **not** change iptables/NAT on monstro without a rollback plan (per infra policy).
|
||||
|
||||
Reference in New Issue
Block a user