标签: qos

是DispatchQueue.global(qos:.userInteractive).async与DispatchQueue.main.async相同

我正在阅读教程:https: //www.raywenderlich.com/148513/grand-central-dispatch-tutorial-swift-3-part-1

并且遇到了QoS类用户交互的定义.它在那里提到它应该在主线程上运行.那么,我的问题是那之间的区别是什么

DispatchQueue.global(qos: .userInteractive).async{} 
Run Code Online (Sandbox Code Playgroud)

DispatchQueue.main.async{}
Run Code Online (Sandbox Code Playgroud)

谢谢!!

qos grand-central-dispatch ios swift dispatch-queue

25
推荐指数
4
解决办法
7645
查看次数

Pika + RabbitMQ:将basic_qos设置为prefetch = 1仍然会消耗队列中的所有消息

我有一个python worker客户端,它会旋转10个worker,每个worker挂钩到RabbitMQ队列.有点像这样:

#!/usr/bin/python
worker_count=10

def mqworker(queue, configurer):
    connection = pika.BlockingConnection(pika.ConnectionParameters(host='mqhost'))
    channel = connection.channel()
    channel.queue_declare(queue=qname, durable=True)
    channel.basic_consume(callback,queue=qname,no_ack=False)
    channel.basic_qos(prefetch_count=1)
    channel.start_consuming()


def callback(ch, method, properties, body):
    doSomeWork();
    ch.basic_ack(delivery_tag = method.delivery_tag)

if __name__ == '__main__':
    for i in range(worker_count):
        worker = multiprocessing.Process(target=mqworker)
        worker.start()
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,尽管在通道上设置了basic_qos,但是第一个启动的工作人员接受队列中的所有消息,而其他人则闲置在那里.我可以在rabbitmq界面中看到这一点,即使我设置worker_count为1并在队列中转储50条消息,所有50条消息进入"未确认"桶,而我预计1会成为未确认的,而另外49条将成为准备.

为什么这不起作用?

qos rabbitmq pika

16
推荐指数
1
解决办法
7879
查看次数

是否可以从Linux内核中的驱动程序代码调用设备层代码

我正在浏览Linux网络设备驱动程序代码,并想知道是否可以从驱动程序代码调用设备层代码.

--- a/drivers/net/ethernet/realtek/8139too.c
+++ b/drivers/net/ethernet/realtek/8139too.c
@@ -1706,10 +1706,20 @@ static netdev_tx_t rtl8139_start_xmit (struct sk_buff *skb,
    unsigned int entry;
    unsigned int len = skb->len;
     unsigned long flags;
-
+     int ret=0;
    /* Calculate the next Tx descriptor entry. */
    entry = tp->cur_tx % NUM_TX_DESC;

+
+        ret = dev_queue_xmit(skb);
+
+        if (likely(ret == NET_XMIT_SUCCESS || ret == NET_XMIT_CN)) {}
+
+         else {
+                dev->stats.tx_dropped++;
+
+        }
+
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我尝试调用dev_queque_xmit(skb),它是设备层的接口,它与Linux QoS代码连接在一起.

我做了这些更改,希望在tx drop byte字段下ifconfig stats捕获由于Linux流量控制导致的数据包丢失,但不确定这些更改是否有效?

是否有可能以我尝试过的方式从驱动程序层调用设备层?

qos network-programming linux-device-driver linux-kernel

11
推荐指数
1
解决办法
573
查看次数

星号QoS(MOS得分)

我正在尝试使用星号QoS(呼叫质量),我已经阅读了许多文章,但是对我来说这些文章都不是很清楚,我希望我能从这里得到一些好的答案。

当电话挂断时,我们将从星号通道获取此数据值。

ssrc=2000676536;
themssrc=1925648282;
lp=0;rxjitter=0.000000;
rxcount=1398;
txjitter=0.000181;
txcount=1514;
rlp=0;
rtt=0.000534
Run Code Online (Sandbox Code Playgroud)

这是我们从渠道获得的所有价值的描述

接收方结束: ssrc表示我们的(接收方)ssrc rxcount表示接收到的数据包数量。lp表示丢失的数据包/丢失的数据包rxjitter表示我们计算的抖动(rx)/抖动

发件人端: themssrc表示其ssrc txcount表示已传输的数据包/ Sent数据包rlp表示远程丢失的数据包/ Lost数据包txjitter表示另一端的报告抖动/ Jitter

往返时间: rtt –往返时间/ RTT

这是根据我从渠道获得的值获得MOS得分的计算

取平均延迟,增加抖动,但对延迟的影响加倍,然后为协议延迟增加10

EffectiveLatency = ( AverageLatency + Jitter * 2 + 10 )
Run Code Online (Sandbox Code Playgroud)

实施一条基本曲线-在等待时间160毫秒(往返)中,将R值减去4。超过此的任何东西都会得到更积极的推论

if EffectiveLatency < 160 then
  R = 93.2 - (EffectiveLatency / 40)
else
  R = 93.2 - (EffectiveLatency - 120) / 10
Run Code Online (Sandbox Code Playgroud)

现在,让我们减去每丢包百分比的2.5个R值

R = R - (PacketLoss * 2.5)
Run Code Online (Sandbox Code Playgroud)

将R转换为MOS值。(这是一个已知公式)

MOS = 1 + (0.035) * R + (.000007) * R …
Run Code Online (Sandbox Code Playgroud)

qos voip asterisk

9
推荐指数
0
解决办法
553
查看次数

如何设置服务质量?

我在谈论http://en.wikipedia.org/wiki/Quality_of_service.通过流式stackoverflow播客并将最新的更新下载到ubuntu,我希望QoS能够正常工作,这样我就可以使用stackoverflow而不需要我的http连接超时或永久使用.

我正在使用内置QoS的iConnect 624 ADSL调制解调器,但我似乎无法让它工作.甚至可以控制下游(即从ISP到您的调制解调器)?

qos networking adsl modem

8
推荐指数
1
解决办法
1188
查看次数

MQTT QoS的用途/目的是什么?

我正在研究MQTT协议,似乎在规范的第一行中存在矛盾:

该协议通过TCP/IP或其他提供有序,无损,双向连接的网络协议运行.其功能包括:

[...]

消息传递的三种服务质量:

  • "最多一次",根据操作环境的最佳努力传递消息. 可能会发生消息丢失.例如,该水平可以用于环境传感器数据,其中如果个体读数丢失则无关紧要,因为下一个读数将很快发布.·
  • "至少一次",确保消息到达但可能发生重复.·
  • "恰好一次",确保消息准确到达一次.例如,此级别可用于计费系统,其中重复或丢失的消息可能导致应用不正确的费用.

如果MQTT只能运行无损的网络协议,那么提供有损QoS级别(级别0)的含义是什么?

我认为甚至不可能提供这一点,因为TCP协议将负责重传丢失的消息.这对于旨在在非TCP,不可靠网络上运行的MQTT-SN来说是有意义的.

(备注:级别1"至少一次"在使用TCP协议时没有意义,因为TCP已经包含此保证,但在更一般的情况下可能有意义,因为规范说可能使用其他无损协议)

qos tcp mqtt

8
推荐指数
1
解决办法
1065
查看次数

如何在Linux上设置最大TCP最大段大小?

在Linux中,如何设置TCP连接上允许的最大段大小?我需要为我没写的应用程序设置它(所以我不能用setsockopt它来做).我需要将此设置为网络堆栈中的mtu.

我有两个流共享相同的网络连接.一个周期性地发送小数据包,这需要绝对最小延迟.另一个发送大量数据 - 我正在使用SCP来模拟该链接.

我已设置流量控制(tc)以使最小延迟流量具有高优先级.但是,我遇到的问题是,从SCP下来的TCP数据包最终会出现64K字节的大小.是的,这些基于mtu被分成更小的数据包,但遗憾的是,在tc对数据包进行优先级排序之后.因此,我的低延迟数据包被卡在高达64K字节的SCP流量后面.

本文指出在Windows上您可以设置此值.

我可以在Linux上设置一些东西吗?我尝试过ip route和iptables,但这些在网络堆栈中应用得太低了.我需要在tc之前限制TCP数据包大小,因此它可以适当地优先处理高优先级数据包.

linux qos tcp

7
推荐指数
3
解决办法
3万
查看次数

使用qWAVE所需的Windows权限/策略

我正在尝试使用qWAVE(在Windows Server 2008 R2上)在套接字流量上设置任意DSCP值.我想我正在正确设置流程,但是当我尝试调用QOSSetFlow()时,我收到一个ERROR_ACCESS_DENIED错误("调用应用程序没有足够的权限来执行请求的操作.").运行此代码的用户是Administrators组的成员,我查看了各种安全策略,但没有看到任何看起来相关的内容.有谁知道我需要什么权限才能让用户使这个API工作?

谢谢!

更新:我有一个测试程序,只是尝试设置DSCP值,当我检查兼容性菜单下的"以管理员身份运行"时,一切正常.所以代码没问题,管理员用户拥有必要的权限.遗憾的是,实际服务无法以管理员用户身份运行.有没有办法为管理员组(或特定用户)提供管理员用户具有的一些权限?

c++ windows qos user-permissions

7
推荐指数
0
解决办法
574
查看次数

为什么我从QOSStartTrackingClient方法接收67个代码?

67从下面的代码收到错误代码,这意味着ERROR_BAD_NET_NAME.

为什么会这样?我该如何解决?

SOCKADDR address;
strcpy_s(address.sa_data, "8.8.8.8");
address.sa_family = AF_INET;

if (!QOSStartTrackingClient(QoSHandle, &address, 0))
    cout << GetLastError();
Run Code Online (Sandbox Code Playgroud)

qos winapi getlasterror sockaddr-in

7
推荐指数
1
解决办法
87
查看次数

Kubernetes 中的优先级和 QoS 有什么区别?

在 Kubernetes 中,我们可以将 pod 的优先级设置为GuaranteedBurstableBest-Effort基于请求和限制。在 Kubernetes 中分配优先级的另一种方法是定义一个priorityClass对象并将 a 分配priorityClassName给 pod。这些方法有何不同?何时我们必须选择一种方法而不是另一种方法?根据https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#interactions-of-pod-priority-and-qos

\n\n
\n

Scheduler\xe2\x80\x99s 抢占逻辑在选择抢占目标时不考虑 QoS。抢占会考虑 Pod 优先级并尝试选择一组优先级最低的目标。

\n
\n\n

因此,如果 Kubernetes 必须在具有GuaranteedQoS 且“priorityClass”值低于Burstablepod 的 pod 之间进行选择,是否会将Guaranteedpod 置于抢占状态?

\n

qos preemption kubernetes

7
推荐指数
2
解决办法
3199
查看次数