PhxPaxos测试

news/2025/1/7 12:26:14/文章来源:https://www.cnblogs.com/EndPoem-ZH/p/18653384

PhxPaxos测试

1 测试环境

1.1 硬件环境

实验使用3台Ubuntu 22.04 x86 PC,硬件配置分别如下:

设备 名称 CPU 内存
PC1 tjopenlab Intel Core i5-3470 3.2GHz 4核4线程 16GB
PC2 poweredge Intel Xeon CPU E5-2403 v2 1.8GHz 2座4核4线程 32GB
PC3 inspiron Intel Core i5-4210U 1.7GHz 2核2线程 6GB

注意:由于Windows不支持POSIX,WSL Ubuntu存在兼容性问题,建议在纯Linux环境下编译测试。

1.2 网络环境

确保各设备处于同一局域网下。假设各设备IP分别为:

编号 名称 IP地址
PC1 tjopenlab 192.168.0.12
PC2 poweredge 192.168.0.22
PC3 inspiron 192.168.0.10

2 编译

PhxPaxos依赖2个共享库:PhxPaxos.so和comort.so。下面在一台主机上编译它们,并传输到其他主机。首先进行编译:

# 克隆COMO仓库(包括子仓库)
git clone https://gitee.com/tjopenlab/como.git --recursive
# 安装COMO所需依赖
sudo apt install build-essential cmake libdbus-1-dev libunwind8-dev libicu-dev dh-autoreconf libtool -y
# 安装外部编译依赖
sudo apt install python3 python-is-python3
# 编译COMO
cd como
source build/envsetup.sh
como_linux_x64
build
# 编译外部组件(包括phxpaxos)
cd ../../.. # como目录
./MakeOptionalExternal.sh

查看编译得到的PhxPaxos.so和可执行文件phxcomo_test:

ls ~/Work/1-2025/como/external/phxpaxos/export_como | grep -E 'PhxPaxos.so|phxcomo_test'

查看编译得到的comort.so:

ls ~/Work/1-2025/como/bin/target/como.linux.x64.rls | grep comort.so

在本机,将上述2条路径设置为动态链接库的搜索路径(以冒号分隔):

export LD_LIBRARY_PATH=/home/user/Work/1-2025/como/external/phxpaxos/export_como:/home/user/Work/1-2025/como/bin/target/como.linux.x64.rls

将上述3个文件传输到其他主机:

scp ~/Work/1-2025/como/external/phxpaxos/export_como/PhxPaxos.so user@192.168.0.22:~/Work/1-2025/
scp ~/Work/1-2025/como/external/phxpaxos/export_como/phxcomo_test user@192.168.0.22:~/Work/1-2025/
scp ~/Work/1-2025/como/bin/target/como.linux.x64.rls/comort.so user@192.168.0.22:~/Work/1-2025/

在其他主机设置对应动态链接库的搜索路径(假设事先将上述文件放在phxpaxos_bin目录下):

export LD_LIBRARY_PATH=/home/user/Work/1-2025/phxpaxos_bin

3 运行测试

3.1 方法

程序参数格式如下:

./phxcomo_test ip1:port1 ip1:port1,ip2:port2,ip3:port3 <y/n>

注意:其中参数ip1:port1是当前主机的IP地址和端口;参数ip1:port1,ip2:port2,ip3:port3是包括本机在内的所有主机的IP和端口,以逗号分隔;<y\n>表示是否为发送节点,y表示发送,n表示只接收而不发送。先运行接收节点,后运行发送节点。

先在另外2台主机上运行phxpaxos_test(作为接收节点),程序将阻塞等待接收。之后在本机运行phxpaxos_test(作为发送节点)。端口号可以任意选取,不冲突即可,如1111。示例指令如下:

# PC2
./phxcomo_test 192.168.0.22:1111 192.168.0.22:1111,192.168.0.10:1111,192.168.0.12:1111 n
# PC3
./phxcomo_test 192.168.0.10:1111 192.168.0.10:1111,192.168.0.12:1111,192.168.0.22:1111 n
# PC1
./phxcomo_test 192.168.0.12:1111 192.168.0.12:1111,192.168.0.10:1111,192.168.0.22:1111 y

3.2 结果

发送节点将发送许多条PhxPropose,并给出对应的状态同步所需时间use_time1,以及从发起同步请求到信号量被设置的时间use_time2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/864483.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Prometheus+Grafana监控flink任务指标

Prometheus+Grafana监控flink任务指标 前期准备 Prometheus 是一款基于时序数据库的开源监控告警系统,由go语言开发,Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。 Grafana 是一款采用Go语言编写的开源应用…

Visual Studio中的C#项目连接本地mysql数据库

一、给项目搭载Mysql连接所需的NuGet包 1.点击visual studio上方导航栏的"工具"选项 2.在下拉框中选中"NuGet包管理器" 3.在展开的侧边栏中选择"管理解决方案的 NuGet 程序包" 4.在新打开的窗口中选择"浏览" 5.搜索框中输入"mysq…

P6822 [PA 2012 Finals] Tax

一个小Trick。很牛的题目!! 直接做可能比较困难,你要考虑一些东西重构一下原图。 这一个题目因为是与边相关的,考虑拆边,拆成两条有向边,那么对于一个点的贡献,我们暴力枚举他的边,两条边的贡献就是取 max。 但这个显然过不了,我们有一种差分建边的方式,按照边权排序…

20241421 《计算机基础与程序设计》课程总结

第一周作业 1.学习了有关专业的技能培养方向 2.对《计算机基础与程序设计》进行了大致的浏览,大概了解了计算机的相关理论知识 3.学习了有关2进制、8进制、10进制、16进制之间的转换第二周作业 1.《计算机科学概论》:第一章向我们介绍了计算机科学这门学科的内容以及其基本概…

[.NET] 单位转换实践:深入解析 Units.NET

在现代软件开发中,准确处理不同单位的转换是一个常见而复杂的需求。无论是处理温度、长度、重量还是其他物理量,都需要可靠的单位转换机制。本文将深入介绍 Units.NET 库,展示如何在 .NET 应用中优雅地处理单位转换。单位转换实践:深入解析 Units.NET 摘要 在现代软件开发中…

卡诺图化简

卡诺图化简 卡诺图(Karnaugh Map,简称K图)是一种用于简化布尔代数表达式的工具。它通过将真值表的值图形化,帮助我们更直观地找到最小项和最大项,从而简化逻辑表达式。 卡诺图的基本概念单元格:每个单元格代表一个布尔变量的可能取值组合。 邻接:两个单元格如果只有一个…

Postman与ElasticSearch交互

为了方便测试,修改ES安装路径下的config/elasticsearch.yml中的安全配置,不使用密钥访问。 以下配置的enabled都改为false # Enable security features xpack.security.enabled: falsexpack.security.enrollment.enabled: false# Enable encryption for HTTP API client conn…

本地搭建ElasticSearch

1:在elastic.co下载安装包 https://www.elastic.co/downloads/elasticsearch windows版本的是个zip包,下载解压缩后可直接通过命令行运行 cd [安装路径]/bin elasticsearch2:配置 默认需要ssl、密码等安全配置,会导致localhost:9200访问失败。可通过以下方式关闭安全配置,…

20241307《计算机基础与程序设计》课程总结

目录 第一节 第二节 教材学习内容总结 C语言程序设计第十三章和第十四章的总结: 第十三章:文件操作文件的打开与关闭 • 使用fopen()函数打开文件,它接受文件名和模式作为参数,返回一个FILE指针。 • fclose()函数用于关闭文件,释放资源。 文件的读取 • fgetc()和getc…

错误记录:[Synth 8-6895] The reference checkpoint

报错详情点击查看代码 [Synth 8-6895] The reference checkpoint E:/Projects/Vivado2023/2.ExampleDesign_my/iic_ms/iic_ms.srcs/utils_1/imports/synth_1/Master.dcp is not suitable for use with incremental synthesis for this design. Please regenerate the checkpoin…

4 跨音速

可以的话请点个赞吧,欧内盖,如果没有大伙支持的话,瓦达西!4 跨音速 基本 升力的基本计算公式为:\(L=\frac{1}{2}\rho_{\infty}V_{\infty}^{2}Sc_{l}\) 对于二维翼型升力系数\(c_l\)而言,它直接和机翼截面几何结构相关,即随翼型弯度增大、厚度-弦长比增大而增大。 ‍ ​​…

CPU负载均衡之WALT

前言 本文继续整理CPU调度WALT相关内容,主要整理如下内容:WALT是什么? WALT 计算? WALT 计算数据如何使用?1. WALT是什么? WALT:Windows-Assist Load Tracing的缩写:从字面意思来看,是以window作为辅助项来跟踪CPU LOAD; 实质上是一种计算方法,用数据来表现CPU当前的…