- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个网络客户端和服务器应用程序。数据流是这样的:客户端向服务器发送消息,服务器以确认响应。只有在收到确认后,客户端才会秒发下一条消息。
用C++编写的客户端应用程序有3个线程,即网络线程(负责通过套接字发送消息)、主线程(负责发出请求消息)和定时器线程(每秒触发一次)。
服务器应用程序有 2 个线程,主线程和网络线程。
我运行 RHEL 6.3、2.6.32-279 内核。
配置1
吞吐量:每秒 4500 条消息
配置2
吞吐量:每秒 9-15 条消息
配置3
吞吐量:每秒 1100 条消息
机器的负载可以忽略不计。当配置文件从延迟性能切换到吞吐量性能时,有人可以解释从 4k 到每秒 9 条消息的下降吗?
最佳答案
这是 RHEL tuned-adm 配置文件之间的基本差异表:
延迟性能将 I/O 电梯转移到截止日期,并将 CPU 调控器更改为“性能”设置。
吞吐量性能针对网络和磁盘性能进行了优化。请参阅下面的详细信息...
您的工作负载似乎对延迟敏感。
这是带有注释的throughput-performance
设置。 latency-performance
不会修改任何这些。
# ktune sysctl settings for rhel6 servers, maximizing i/o throughput
#
# Minimal preemption granularity for CPU-bound tasks:
# (default: 1 msec# (1 + ilog(ncpus)), units: nanoseconds)
kernel.sched_min_granularity_ns = 10000000
# SCHED_OTHER wake-up granularity.
# (default: 1 msec# (1 + ilog(ncpus)), units: nanoseconds)
#
# This option delays the preemption effects of decoupled workloads
# and reduces their over-scheduling. Synchronous workloads will still
# have immediate wakeup/sleep latencies.
kernel.sched_wakeup_granularity_ns = 15000000
# If a workload mostly uses anonymous memory and it hits this limit, the entire
# working set is buffered for I/O, and any more write buffering would require
# swapping, so it's time to throttle writes until I/O can catch up. Workloads
# that mostly use file mappings may be able to use even higher values.
#
vm.dirty_ratio = 40
关于c++ - 吞吐量从 4k 下降到 9 条消息,调整了 adm 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042870/
我正在尝试在网站中创建管理区域,当我需要用户登录时,它不会。我的查询总是返回 NULL,导致无法登录。我像这样进行了所有查询并且一切正常,另外,当我在我的 mysql 控制台中进行查询时,一切都很好。
我正在使用 adm-zip 压缩 本地目录及其所有嵌套文件和目录。 var AdmZip = require('adm-zip'); var pathToZip = process.env.PUBLI
我正在尝试使用 Adm-Zip 将文件打包成 zip 文件 var AdmZip = require('adm-zip'); var pathToZip = 'build/release/Ext.zi
我正在尝试了解 TOGAF,主要是大学项目的 ADM。阅读完 TOGAF 文档后,我留下了一个非常基本的问题。 ADM 周期何时开始 - 是什么启动它?虽然第一次运行可能只是由使用 TOGAF 进行
我正在寻找类似于 ImageJ 或 Adobe Dialog Manager 中使用的 GenericDialog 的东西。目标是创建一个对话框模板(字段数、类型等——需要的信息,而不是它的呈现方
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我正在尝试使用 NodeJS 和 Express 解压缩文件。我尝试过 ADM-Zip。 我输入: npm install adm-zip 得到: npm WARN package.json expr
我想录制我的应用程序运行的短视频。我在我的 Pixel 硬件设备上运行 Android Device Monitor (ADM),我只能找到工作正常的“屏幕截图”图标。 我检查了整个堆栈溢出并遵循了
我正在开发一个 Web 应用程序,我有一个文件夹,其中包含一堆扩展名为 .adm 、 .adi 和 .adt 以及 .bak 的文件。我希望能够读取这些数据并将其转换为 mysql 数据库。我认为这些
我正在尝试 Amazon Device Messaging API 我按照亚马逊的建议使用导入添加了 jar 文件。当我部署到设备上时,出现错误, 06-03 16:24:13.680: E/Andr
今天我已经从 Android Studio 3.0 升级到 3.1,但我找不到 Android Device Monitor ! 如何访问 Android Device Monitor 在 Andro
我有一个用例,我想在 Amazon fire 平板电脑应用程序上向用户发送通知,并在点击通知后向他展示应用程序的功能。 我想从云端安排这个通知。我看到我们这样做有两个服务 Amazon pinpoin
我试图获取 zip 文件中的文件数量。我使用了 adm-zip。所以我尝试使用以下内容:- var unzip=require('adm-zip'); var zip=new unzip("hel
您好,我正在尝试将 Adm Zip npm 模块制作的 zip 缓冲区发送到我的响应以供客户端下载。我设法下载了 zip 文件,但无法扩展它。 OSX 显示“错误 2 没有这样的文件或目录”... 我
我试图读取一个 zip 文件,然后在 zip 的根目录解析一个 json 文件。 json 文件称为 manifest.json,在我阅读的每个 zip 文件中都将调用它。 目前我有以下功能 func
我有一个网络客户端和服务器应用程序。数据流是这样的:客户端向服务器发送消息,服务器以确认响应。只有在收到确认后,客户端才会秒发下一条消息。 用C++编写的客户端应用程序有3个线程,即网络线程(负责通过
我正在尝试使用 sqlite3 模块创建内存 SQLite 数据库,并使用 adm-zip 模块将其保存到 zip 文件中。到目前为止,我已经能够创建一个内存数据库并向其中添加数据,但我未能成功找到一
我正在使用 Go 1.13 Postgres 11 和 GraphQL 我正在尝试运行三个不同的查询: 1. 在某些条件为真时获取少数员工的详细信息。 2. 获取所有员工的所有详细信息。 3. 在匹配
我需要下载一个文件 axios并在 Electron 应用程序中将其解压缩到内存中。 我读了一些 SO 线程( e.g. ),即 adm-zip支持字节缓冲区构造函数,但我在文档中看不到这一点。当我提
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
我是一名优秀的程序员,十分优秀!