首页
统计
关于
Search
1
C语言:获取程序运行消耗的时间(gettimeofday)
419 阅读
2
QT-利用Qcamera查看USB摄像头参数(数据帧格式+分辨率)
287 阅读
3
嵌入式linux组播接收发送失败解决
282 阅读
4
一切从头开始
208 阅读
5
Linux 查看硬盘通电时间
198 阅读
编程语言
C/C++
PHP
Go
分享
随笔
Linux
OpenHarmony
登录
Search
标签搜索
C++
QT
Linux
Git
Go
C
程序执行时间
函数执行时间
GDAL
zeromq
github
Centos
代理
goKit
gitea
247.1
累计撰写
31
篇文章
累计收到
0
条评论
首页
栏目
编程语言
C/C++
PHP
Go
分享
随笔
Linux
OpenHarmony
页面
统计
关于
搜索到
31
篇与
的结果
2023-12-15
常见的Raid说明
RAID 0:也称为条带化RAID,它将多个硬盘驱动器组合成一个逻辑卷,以提供更好的性能。数据被均匀分布在所有驱动器上,从而实现并行读写。但是,RAID 0没有冗余功能,如果其中一个驱动器发生故障,所有数据都将丢失。RAID 1:也称为镜像RAID,它将两个硬盘驱动器配置为镜像对。所有数据同时写入两个驱动器,从而实现冗余备份。如果一个驱动器发生故障,另一个驱动器仍然可用,并且数据可以从备份中恢复。RAID 5:它使用三个或更多硬盘驱动器,并通过分布校验和来提供数据冗余。数据和校验和交错存储在多个驱动器上,使得数据恢复成为可能。如果一个驱动器发生故障,RAID 5可以通过计算校验和来恢复原始数据。RAID 6:类似于RAID 5,但提供更高级别的冗余。它使用额外的校验和进行冗余备份,从而在两个驱动器发生故障时仍能保护数据。RAID 10(RAID 1+0):RAID 10结合了RAID 1和RAID 0的特性。它使用至少四个硬盘驱动器,将数据分为两组并进行镜像。然后,这两组镜像数据再进行条带化以提高性能和冗余。RAID 10同时提供数据冗余和较高的读写性能,但需要更多的硬盘驱动器。RAID 50(RAID 5+0):RAID 50是在RAID 5和RAID 0之间的组合。它使用至少六个硬盘驱动器,将数据分为多个组,并为每个组计算校验和。然后,这些组的数据进行条带化以提高性能。RAID 50提供了较高的性能和容错能力,但需要更多的硬盘驱动器。RAID 3:RAID 3将数据条带化,并使用奇偶校验来提供冗余。它需要至少三个硬盘驱动器,并且只有一个驱动器用于存储校验和。RAID 3适用于大量顺序读取的应用,但对于随机写入的性能较差。RAID 4:RAID 4类似于RAID 3,但它使用块级别的奇偶校验而不是字节级别的奇偶校验。它需要至少三个硬盘驱动器,并提供较好的顺序读取性能。RAID 6:RAID 6通过使用两个校验和来提供比RAID 5更高级别的冗余。它可以容忍两个硬盘驱动器的故障,并且具有较高的数据保护能力。RAID 6适用于大容量存储系统或对数据安全性要求较高的场景。JBOD(Just a Bunch Of Disks):JBOD并不是真正的RAID级别,而是将多个硬盘驱动器简单地组合在一起,形成一个大容量的虚拟卷。与其他RAID级别不同,JBOD没有数据冗余或性能提升,只是将多个硬盘视为一个单独的存储设备。
2023年12月15日
28 阅读
0 评论
0 点赞
2023-11-04
CMAKE报告:COULD NOT FIND PKGCONFIG (MISSING: PKG_CONFIG_EXECUTABLE)
Ubuntu可以直接apt-get即可: sudo apt-get install pkg-config Windows需要手动安装:1、在http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/ 中下载pkg-config_0.26-1_win32.zip将文件bin/pkg-config.exe解压缩到your_directory/2、下载gettext-runtime_0.18.1.1-2_win32.zip将文件bin/intl.dll提取到your_directory/3、从http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28 下载glib_2.28.8-1_win32.zip将文件bin/libglib-2.0-0.dll解压缩到your_directory/4、在系统环境变量增加your_directory/
2023年11月04日
181 阅读
0 评论
0 点赞
2023-05-25
解决SMTP 发信暴露服务器源IP的方法
我们以 CentOS、阿里云邮件推送 为例:第一步 需要安装 Haproxy:yum -y install haproxy然后清空 haproxy.cfg 文件内容cd /etc/haproxy/haproxy.cfg然后将下面内容粘贴到 haproxy.cfg 中globalulimit-n 51200defaultslog globalmode tcpoption dontlognulltimeout connect 1000mstimeout client 150000mstimeout server 150000mslisten statusbind 0.0.0.0:1080mode httplog globalstats refresh 30sstats uri /admin?statsstats realm Private landsstats auth admin:passwordstats hide-versionfrontend ssinbind *:465default_backend ssoutbackend ssoutserver server1 11.22.33.44 maxconn 204800// 如果是普通模式,那这里就填25,如果是SSL模式,就需要填465bind *:465//这里的IP需要改成SMTP地址的IP,ping一下SMTP域名即可得到地址server server1 11.22.33.44 maxconn 204800修改完成后,执行重启命令,并设为开机启动service haproxy restartchkconfig haproxy on第二步 修改 Web 服务器的发信 Hosts 地址!在 Web 服务器上输入echo "22.33.44.55 smtpdm.aliyun.com" >> /etc/hosts然后重启网卡service network restart现在去发邮件试一下,是不是隐藏掉了源站的 IP。
2023年05月25日
145 阅读
0 评论
0 点赞
2023-05-23
一键测试脚本bench.sh
总结一下 bench.sh 的特点:1、显示各种系统信息;2、取自 Speedtest 世界多处的数据中心的测试点,网络测试比较全面;3、支持 IPv6 下载测速;4、IO 测试(顺序写入 1GB 数据)三次,并显示其平均值。使用方法使用root用户登录,运行以下命令:命令1wget -qO- bench.sh | bash或者curl -Lso- bench.sh | bash
2023年05月23日
79 阅读
0 评论
0 点赞
2023-05-19
QT-利用Qcamera查看USB摄像头参数(数据帧格式+分辨率)
运行环境检查:首先检查自己的QT版本及系统环境是否支持Qcamera:Qcamera是multimedia模块中的接口函数,multimedia模块在QT5.3之后是自带的。在windows环境下可直接使用,在LINUX 环境下需要手动安装multimedia模块。代码片段:pro文件包含:QT += multimedia multimediawidgets示例#include "mainwindow.h" #include "ui_mainwindow.h" //相机相关的头文件 #include <QCamera> #include <QCameraInfo> #include <QVideoProbe> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); m_camera = new QCamera(this);//初始化摄像头设备 QVideoProbe *m_pProbe = new QVideoProbe; if(m_pProbe != nullptr) { m_pProbe->setSource(m_camera); // Returns true, hopefully. connect(m_pProbe, SIGNAL(videoFrameProbed(QVideoFrame)),this, SLOT(slotOnProbeFrame(QVideoFrame)),Qt::QueuedConnection); }//其中SIGNAL(videoFrameProbed(QVideoFrame)为VideoProbe模块自带的信号 m_camera->setCaptureMode(QCamera::CaptureViewfinder);//设置捕捉模式为视频 m_camera->setViewfinder(ui->centralWidget);//设置 摄像头画面的显示位置 m_camera->start();//开启摄像头 //查询摄像头支持的分辨率 QList<QSize> sizes = m_camera->supportedViewfinderResolutions(); qDebug() << "viewfinderResolutions sizes.len = " << sizes.length(); foreach (QSize size, sizes) { qDebug() << "Resolutions size = " << size; } //摄像头参数初始化,根据需求用户自定义摄像头分辨率,也可以用来设置摄像头数据类型 QCameraViewfinderSettings set; set.setResolution(VIDEO_WIDTH, VIDEO_HEIGHT);//设置分辨率 //set.setPixelFormat(QVideoFrame::Format_YUYV); //设置像素格式 Android上只支持NV21格式 m_camera->setViewfinderSettings(set); //包含头文件QCameraInfo QList<QCameraInfo> cameras = QCameraInfo::availableCameras();//获取可用摄像头设备列表 foreach (const QCameraInfo &cameraInfo, cameras) { qDebug()<<"检测到设备:"<<cameraInfo.deviceName();//摄像头的设备名称 } } //图像触发的槽函数 void MainWindow::slotOnProbeFrame(const QVideoFrame &frame) { QVideoFrame cloneFrame(frame);//类拷贝操作,fram -> clonframe cloneFrame.map(QAbstractVideoBuffer::ReadOnly); //视频缓冲区数据映射到系统内存 //unsigned char rgb_buffer[VIDEO_WIDTH*VIDEO_HEIGHT*3]; qDebug()<<"设备数据格式:"<< cloneFrame.pixelFormat()<<endl; cloneFrame.unmap(); } MainWindow::~MainWindow() { delete ui; }
2023年05月19日
287 阅读
0 评论
0 点赞
1
...
3
4
5
...
7