openstack调优

2023-10-30

【cinder限速】

为了减缓来自实例的数据访问速度的减慢,openstack block storage支持对卷数据复制带宽的速率限制,请修改cinder后端配置文件将文件卷复制带宽限制为最高100MB/s

# The upper limit of bandwidth of volume copy. 0 => unlimited (integer value)
#volume_copy_bps_limit = 0
volume_copy_bps_limit = 100000000
#默认是字节每秒,这里从b开始算,这里添加单位无法启动。

然后重启服务即可,注意在计算节点上。

systemctl restart openstack-cinder-volume*

backend_allow_tenant_qos = True
#用于开启租户QoS,即在使用Cinder存储服务时,可以为不同的租户分配不同的服务质量(QoS),从而为不同的业务应用提供适当的服务质量保障。
#若没有开启此选项,则无法使用租户QoS功能。

【dashboard调优】

安装dashboard服务后,将dashboard中的Djingo数据修改为存储在文件中(此种修改解决了All-in-one快照在其他云平台dashboard不能访问的问题)

[root@controller ~]# vim /etc/openstack-dashboard/local_settings
#编辑配置
#搜索SESSION_ENGINE
#SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_ENGINE = 'django.contrib.sessions.backends.file'
#将其注释,更改为数据存储在文件中。
#重启memcached,httpd即可。

【glance最大存储】

在openstack平台上,请修改glance后端配置文件,将用户的镜像存储配额限制为200GB

[root@controller ~]# vim /etc/glance/glance-api.conf
#user_storage_quota = 0
user_storage_quota = 200GB
#将其修改为用户镜像存储配置限制为200GB
#这里的用是指租户。

然后重启服务即可。

systemct restart openstack-glance*

【虚拟机磁盘性能优化】

修改块设备I/O调度器默认值为none,在虚拟机当中相当于能直接访问宿主机磁盘。

[root@test ~]# cat /sys/block/vda/queue/scheduler
[root@test ~]# echo 'none' > /sys/block/vda/queue/scheduler

【虚拟机网络优化】

openstack使用的虚拟主机的网络都使用半虚拟化类型(设置在资源节点即可)

vim /etc/nova/nova.conf
# Use virtio for bridge interfaces with KVM/QEMU (boolean value)
use_virtio_for_bridges=true

【虚拟机cpu优化】

想要优化kvm,从cpu方面就需要通过调整kvm的NUMA对应关系进行优化。

首先,查看kvm虚拟机的cpu信息

[root@localhost work-dir]# virsh vcpuinfo vm2
VCPU:           0
CPU:            1
状态:       running
CPU 时间:   0.6s
CPU关系:      yyyy

VCPU:           1
CPU:            2
状态:       running
CPU 时间:   0.0s
CPU关系:      yyyy

上面的信息来看,这个虚拟机的cpu是双核的,cpu:代表着是跑在了物理机的cpu1和cpu2上,使用时间是0.6s,一个0.0s,yyyy是使用物理cpu内部的逻辑核,一个y就代表一个cpu的逻辑核。这里宿主机的逻辑核有4个。需要减少跨cpu的交互使用,从而提升虚拟机性能。

然后设置vm2的所有虚拟cpu都使用同一个宿主机的逻辑cpu

virsh vcpupin vm2 虚拟cpu号  逻辑cpu号
例如:
[root@localhost work-dir]# virsh vcpupin vm2 0 1

[root@localhost work-dir]# virsh vcpupin vm2 1 1

[root@localhost work-dir]# virsh vcpuinfo vm2
VCPU:           0
CPU:            1
状态:       running
CPU 时间:   39.6s
CPU关系:      -y--

VCPU:           1
CPU:            1
状态:       running
CPU 时间:   24.1s
CPU关系:      -y--

【nova调优详解】

#超售比
ram_allocation_ratio = 1.0
#默认是1.5,内存分配超售比

disk_allocation_ratio = 1.2
#磁盘超售比例,默认是1:1倍

cpu_allocation_ratio = 4.0
#cpu超售比,建议超售4倍,vcpu可以比宿主机内核多4倍
###################################
#预留量
vcpu_pin_set = 4-%
#%是物理机的cpu内核总数来决定的,比如上面这个
#预留4个cup防止虚拟机跟组主机抢cpu资源

reserved_host_memory_mb = 4096
#预留的内存量,这部分内存不能被虚拟机所使用,单位是m

reserved_host_disk_mb = 10240
#磁盘预留量,这部分空间不能被虚拟机所使用,单位是m
###################################
#服务下线时间
service_down_time=120
服务下线时间阈值,单位是秒,如果一个节点上的nova服务超过这个时间没有上报数据库

【openstack内存优化】

关闭系统的内存共享,打开透明大页。

计算节点但可以配置cpu与内存的超配比例,但是一旦使用大页内存,内存便不能再进行超配。因为使用大页内存时,虚拟机内存页必须与主机内存页——映射,并且主机操作系统能通过swap分区分配大页内存,这也排除了内存超配的可能,大页内存的时候,意味着需要支持内存作为专用资源的虚拟机类型。

#关闭系统内存共享
[root@compute ~]# cat /sys/kernel/mm/ksm/run
0
#这里run是设置ksm属性的状态,这里是0视为关闭。
#而pages_shared,ksm正在使用的不可交换的内核页面数量。
[root@compute ~]# cat /sys/kernel/mm/ksm/pages_sharing
0
#关闭透明大页。
[root@compute ~]# echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag
[root@compute ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
#上面时物理机的路径,虚拟机的略有不同。 
#enabled是决定是否启用透明大页,而defrag是用于指定是否开启内存碎片整理
always madvise [never]
[root@compute ~]# echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
[root@compute ~]# cat /sys/kernel/mm/transparent_hugepage/enabled

【保留实例状态】

服务器意外断电,恢复供电后openstack虚拟机处于关闭状态,修改配置文件使openstack集群断电恢复后,实例重启为原先状态。修改资源节点。

#修改nova配置
vim /etc/nova/nova.conf
resume_guests_state_on_host_boot=true
#重启nova-compute服务。

【防止syn洪水攻击】

修改controller节点的相关配置文件,并开启SYN cookie,防止SYN洪水攻击

#开启SYN Cookies
[root@compute ~]# sysctl -a | grep _syn
fs.xfs.inherit_sync = 1
net.ipv4.tcp_max_syn_backlog = 512
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syncookies = 1
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.ens33.stable_secret"
sysctl: reading key "net.ipv6.conf.ens34.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
#查看_syn默认相关配置
[root@compute ~]# echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf
[root@compute ~]# sysctl -p
net.ipv4.tcp_syncookies = 1
#虽然syn默认开启,但是需要添加配置文件,最后生效。
#开启syn可以防范少量的洪水攻击,0表示关闭。

【解决虚拟机排队】

太多虚拟机同时启动出现排队现象,导致虚拟机启动超时,从而获取不到ip地址而报错失败,通过调优设置解决问题。

编辑配置文件/etc/nova/nova.conf

vif_plugging_is_fatal=true   
#将其修改为false

这里将vif_plugging_is_fatal设置为False时,关闭计算机节点的neutron-openvswitch-agent服务,虚拟机可以正常启动,但是端口为down,虚拟机也拿不到ip地址,启动ovs-agent后port状态立刻变为active,虚拟机可以拿到ip。

systemctl restart openstack-nova*

【自动清理镜像缓存】

在openstack平台的一台计算节点创建虚拟机,若是第一次在该节点创建此虚拟机,会先将镜像文件复制到该计算节点目录/var/lib/nova/instances/_base,长期下来,该目录会占用比较大的磁盘空间而需要清理,可以通过修改nova的配置文件来自动清理该缓存目录,即在该节点没有使用其镜像启动的云主机,那么这个镜像在过一定的时间后就会被自动删除

[root@compute ~]# vim /etc/nova/nova.conf
#remove_unused_base_images=true
#remove_unused_original_minimum_age_seconds=86400
#image_cache_manager_interval=2400
#修改以上参数
remove_unused_base_images=True
remove_unused_original_minimum_age_seconds=3
image_cache_manager_interval=5

remove_unused_base_images用于开启自动清理镜像缓存。

image_cache_manager_interval是为了缩短测试时间才需要设置,默认40分钟才检查一次

remove_unused_original_minimum_age_seconds也是为了缩短测试时间,默认是超过247个消失的无用base镜像才会被删除。

注意:三个选项都是在资源节点修改。

【linux脏数据回写时间】

inux用cache/buffer缓存数据,有回刷任务在适当时候把脏数据回刷到存储介质中,对不同的场景对触发回刷的需求也不一样,对io回刷触发时机的选择,是io性能优化的一个重要方法。

#通过sysctl -p来进行修改,在/etc/sysctl.conf中写入参数
vm.dirty_expire_centisecs = 3000
#然后sysctl -p生效即可
#注意单位为1/100 s

【僵死连接占用资源】

使用linux服务器的使用,TCP协议规定,对于已经建立的连接,网络双方要进行四次挥手才能成功断开连接,如果缺少了其中的某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放,因为服务器程序同时管理大量连接,所以很有必要保证无用的连接完全断开,否则大量僵死的连接会浪费许多服务器资源,创建一台centos7.9云主机,修改相应的配置文件,分别开启SYN Cookies;允许将TIME-WAIT sockets重新用于新的TCP连接;开启TCP连接中TIME-WAIT sockets的快速回收;修改系统默认的TIMEOUT时间为30

#开启SYN Cookies
[root@compute ~]# sysctl -a | grep _syn
fs.xfs.inherit_sync = 1
net.ipv4.tcp_max_syn_backlog = 512
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syncookies = 1
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.ens33.stable_secret"
sysctl: reading key "net.ipv6.conf.ens34.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
#查看_syn默认相关配置
[root@compute ~]# echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf
[root@compute ~]# sysctl -p
net.ipv4.tcp_syncookies = 1
#虽然syn默认开启,但是需要添加配置文件,最后生效。

设置TIME-WAIT

[root@compute ~]# sysctl -a | grep net.ipv4.tcp_tw_
sysctl: reading key "net.ipv6.conf.all.stable_secret"
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
#查看默认配置
#net.ipv4.tcp_tw_reuse =1    表示开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。
#net.ipv4.tcp_tw_recycle = 1    #表示开启TCP连接中TIME-WAIT sockets快速回收,默认为0,表示关闭。
[root@compute ~]# sysctl -a | grep net.ipv4.tcp_fin
sysctl: reading key "net.ipv6.conf.all.stable_secret"
net.ipv4.tcp_fin_timeout = 60
#查看默认配置
#表示系统默认的TIMEOUT时间

将上面的参数写入sysctl.conf,然后sysctl -p生效即可。

【修改最大句柄数】

Linux服务器最大并发时,往往需要预先调优linux参数,默认情况下linux最大文件句柄数为1024个,当前你的服务器在大并发达到极限时,就会报出“too many files“,创建一台云主机,修改相关配置,将控制节点的最大文件句柄数永久修改为65535

#调优linux参数设置最大句柄数
ulimit -n 655355
#上面是临时生效的句柄数。
[root@compute ~]# vim /etc/security/limits.conf
*                soft    nofile          65535
*                hard    nofile          65535
#添加上面内容

【设置rabbitmq最大连接数】

分别通过用户级别、系统级别、配置文件来设置RabbitMQ服务的最大连接数

#用户级别
[root@compute ~]# vim /etc/security/limits.conf
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
rabbitmq        soft    nofile          10240
rabbitmq        hard    nofile          10240

#系统级别
[root@compute ~]# vim /etc/sysctl.d/99-sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
fs.file-max=10240
[root@compute ~]# sysctl -p /etc/sysctl.d/99-sysctl.conf
fs.file-max = 10240

#配置文件
[root@controller ~]# vim /usr/lib/systemd/system/rabbitmq-server.service
#在[service]下添加
LimitNOFILE=10240
[root@controller ~]# systemctl daemon-reload

[root@controller ~]# systemctl restart rabbitmq-server
systemctl stat[root@controller ~]# systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2022-10-31 22:30:30 CST; 3s ago
  Process: 25778 ExecStop=/bin/sh -c while ps -p $MAINPID >/dev/null 2>&1; do sleep 1; done (code=exited, status=0/SUCCESS)
  Process: 25643 ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl stop (code=exited, status=0/SUCCESS)
 Main PID: 25787 (beam.smp)
   Status: "Initialized"
   CGroup: /system.slice/rabbitmq-server.service
           ├─25787 /usr/lib64/erlang/erts-8.3.5.3/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stb...           ├─25998 erl_child_setup 10240
           ├─26014 inet_gethost 4
           └─26015 inet_gethost 4

10月 31 22:30:28 controller systemd[1]: Starting RabbitMQ broker...
10月 31 22:30:29 controller rabbitmq-server[25787]: RabbitMQ 3.6.16. Copyright (C) 2007-2018 Pivo...c.
10月 31 22:30:29 controller rabbitmq-server[25787]: ##  ##      Licensed under the MPL.  See http...m/
10月 31 22:30:29 controller rabbitmq-server[25787]: ##  ##
10月 31 22:30:29 controller rabbitmq-server[25787]: ##########  Logs: /var/log/rabbitmq/rabbit@co...og
10月 31 22:30:29 controller rabbitmq-server[25787]: ######  ##        /var/log/rabbitmq/rabbit@co...og
10月 31 22:30:29 controller rabbitmq-server[25787]: ##########
10月 31 22:30:29 controller rabbitmq-server[25787]: Starting broker...
10月 31 22:30:30 controller systemd[1]: Started RabbitMQ broker.
10月 31 22:30:30 controller rabbitmq-server[25787]: completed with 0 plugins.
Hint: Some lines were ellipsized, use -l to show in full.

【数据库优化】

vim /etc/my.cnf
thread_concurrency = 64
#CPU 核数 * 2
max_connections=1500
#最大连接(用户)数。每个连接 MySQL 的用户均算
作一个连接
max_connect_errors=30
#最大失败连接限制
bulk_insert_buffer_size = 32M
#批量插入数据缓存大小
query_cache_type=1
#查询缓存 (0 = off、1 = on、2 = demand)
query_cache_size = 64M
#指定 mysql 查询缓冲区大小
max_allowed_packet = 128M
#通信缓冲大小
read_buffer_size = 8M
#顺序读取数据缓冲区使用内存
read_rnd_buffer_size = 32M
#随机读取数据缓冲区使用内存
innodb_buffer_pool_size=4G
#设置innodb表的索引,数据,插入数据时的缓冲为4G
innodb_log_buffer_size=64M
#设置数据库日志缓冲。
innodb_log_file_size=256M
#设置redo log(物理日志)文件大小。
 innodb_log_files_in_group=2
 #设置redo log(物理日志)文件组为2
#优化配置在mysqld下

可以通过检查数据库配置信息来获取要修改的值。

show variables;    #检查数据库配置信息。
show variables like 'innodb%';    #使用like筛选固定的信息,%和*相当。
#可以根据要求的调优来专门查找信息然后配置进入my.cnf配置文件。

【memcached缓存修改】

[root@controller ~]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"     #memcached缓存大小
OPTIONS="-l 127.0.0.1,::1,controller"
[root@controller ~]# systemctl restart memcached

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openstack调优 的相关文章

  • openstacksdk如何更改当前用户密码

    我找到了CLI or API请求方法 它们对我有用 如下所示 source etc kolla admin openrc sh openstack user password set password newpsw original pas
  • Jenkins集成部署java项目

    文章目录 Jenkins简介 安装 Jenkins简介 Jenkins能实时监控集成中存在的错误 提供详细的日志文件和提醒功能 还能用图表的形式形象的展示项目构建的趋势和稳定性 官网 安装 在官网下载windows版本的Jenkins 但是
  • Linux配置Acado

    如果需要使用acado的matlab接口 请移步 Linux Matlab配置Acado 首先 安装必要的软件包 sudo apt get install gcc g cmake git gnuplot doxygen graphviz 在
  • Centos8破解Root密码

    注 Centos7同理 1 重启Centos8系统后 在启动页面中选中第一行 按 e 键进入界面 2 找到linux开头所在行的找到 ro 改为上 rw init sysroot bin bash 同时按下 Ctrl X 跳转到紧急模式 3
  • 全国(山东、安徽)职业技能大赛--信息安全管理与评估大赛题目+答案讲解——操作系统取证

    博主介绍 博主介绍 大家好 我是 hacker routing 很高兴认识大家 主攻领域 渗透领域 应急响应 python VulnHub靶场复现 面试分析 点赞 评论 收藏 养成习惯 一键三连 欢迎关注 一起学习 一起讨论 一起进步 文末
  • CAN光端机技术指南:工业网络通信的高效解决策略

    在现代工业自动化和车辆网络通信中 CAN光端机 技术扮演着不可或缺的角色 它为控制器局域网 Controller Area Network CAN 提供了高效 稳定的数据传输解决方案 使得在复杂和严苛的工业环境中 数据通信更加可靠和高效 技
  • Nexus5596交换机支持3层需要的子卡

    3层子卡 nexus5596如果没有这块子卡 无法支持3层特性 TEST Cisco N5596 1 show modu Mod Ports Module Type Model Status 1 48 O2 32X10GBase T 16X
  • Linux 软件安装以及管理

    本篇主要记录常用的软件安装和管理方式 主要是 yum rpm dnf apt pip 大致都是一样的 主要是部分软件提供了解决依赖的功能 内容不包括源码安装 源码安装情况相对比较复杂 后续有时间再补充 约定 案例所用模板软件均为 pytho
  • 服务器集群是如何提高计算性能的?

    服务器集群是一种将多台服务器连接起来协同工作的技术 通过集群配置 可以提高计算性能 可靠性和可扩展性 以下是服务器集群如何提高计算性能的详细解释 一 并行处理能力 服务器集群的核心优势在于其并行处理能力 通过将多个服务器组成一个集群 可以将
  • 如何解读服务器的配置和架构?

    在当今数字化时代 服务器作为企业或组织的重要基础设施 其配置和架构对于保障业务的稳定运行至关重要 如何解读服务器的配置和架构 成为了一个备受关注的话题 本文将围绕服务器配置和架构的解读进行深入探讨 帮助读者更好地理解服务器的性能 扩展性和安
  • 使用 python-boto 启动 Openstack 实例

    我正在尝试在 opensatck 设置上启动实例 并使用 python boto 配置多个网络 但我收到以下错误 EC2ResponseError EC2ResponseError 400 Bad Request
  • Jenkins流水线怎么做?

    问CHAT Jenkins流水线怎么做 CHAT回复 Jenkins流水线是一种创建 测试和部署应用程序的方法 以下是为Jenkins创建流水线的步骤 1 安装Jenkins 首先你需要在你的服务器上安装Jenkins 这个过程可能会根据你
  • SRC漏洞挖掘经验+技巧篇

    一 漏洞挖掘的前期 信息收集 虽然是前期 但是却是我认为最重要的一部分 很多人挖洞的时候说不知道如何入手 其实挖洞就是信息收集 常规owasp top 10 逻辑漏洞 重要的可能就是思路猥琐一点 这些漏洞的测试方法本身不是特别复杂 一般混迹
  • Linux终端常见用法总结

    熟悉Linux终端的基础用法和常见技巧可以极大提高运维及开发人员的工作效率 笔者结合自身学习实践 总结以下终端用法供同行交流学习 常 见 用 法 1 快捷键 1 1 Alt 在光标位置插入上一次执行命令的最后一个参数 1 2 Ctrl R
  • Python自动化操作:简单、有趣、高效!解放你的工作流程!

    今天跟大家分享一套自动化操作流程解决方案 基于 Python语言 涉及 pyautogui pyperclip pythoncom win32com 依赖包 安装命令为 pip install pyautogui pip install p
  • 服务器VPS是什么意思?一文了解其含义与重要性

    在今天的数字时代 服务器扮演着至关重要的角色 它们是网站 应用程序和在线业务的基石 但是 你是否听说过VPS 本文将深入探讨什么是服务器VPS 以及为什么它在今天的互联网世界中如此重要 什么是服务器VPS 服务器的基本概念 在我们深入探讨V
  • GitLab CI 实现项目A更新代码自动触发项目B更新错误码文档

    一 CI CD简介 CI CD 是持续集成 Continuous Integration 和持续交付 持续部署 Continuous Delivery Continuous Deployment 的缩写 是一种软件开发和交付的最佳实践 这两
  • NoValidHost:未找到有效主机。没有足够的可用主机

    当我在仪表板中创建实例时 出现错误 未找到有效的主机 没有足够的可用主机 In the var log nova nova conductor log文件 有日志 2017 08 05 00 22 29 046 3834 WARNING n
  • 安装 openstack 时发生错误:./stack.sh:137:die

    我尝试使用以下命令通过 devstack 安装 openstack git 克隆https github com openstack dev devstack git https github com openstack dev devst
  • 开放堆栈你好世界

    我想在开放堆栈云上编写一个程序 当我搜索资源时 我找到的只是安装和管理手册 我安装了云 现在如何在其上运行程序 使用消息队列或 blob 存储的示例会很好 有谁知道这方面的好的编程教程吗 当您说 在 Openstack 云上编写程序 时 您

随机推荐

  • Nginx(7)Nginx实现服务器端集群搭建

    Nginx集群搭建 Nginx与Tomcat部署 Nginx实现动静分离 Nginx实现Tomcat集群搭建 Nginx高可用解决方案 Keepalived Keepalived配置文件 keepalived之vrrp script Ngi
  • 爬虫入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

    01 Python优势 对于网络爬虫开发来说 Python有着无与伦比天然优势 这里从两个方面对其优势进行分析与讲解 1 抓取网页本身的接口 相比其他静态编程语言 如java c 与c Python抓取网页文档的接口更简洁 而对比其他动态脚
  • chrome设置黑暗模式的4种方法

    chrome设置黑暗模式的4种方法 前言 方式一 自带皮肤暗黑 具体操作 效果 方式二 自带内容暗黑 具体操作 效果 方式三 安装chrome主题 方式四 使用插件 效果 额外 开发工具的暗黑设置 结语 前言 对于大部分chrome用户来说
  • Qt Tcp网络编程

    1 Qt中的TCP客户端编程 Qt中的TCP客户端编程 对于Qt编程而言 网络只是数据传输的通道 Qt提供了QTcpSocket类 封装了TCP协议细节 将QTcpSocket的对象当做黑盒使用 进行数据收发 QTcpSocket的使用方式
  • Java中的StringBuilder类功能详解

    android培训 java培训 java学习型技术博客 期待与您交流 字符串连接可以通过两种方法实现 其中一种是在Java中提供的一个StringBuilder类 这个类只在J2SE5及以上版本提供 以前的版本使用StringBuffer
  • oracle连接

    使用JDBC创建的数据库tcp连接是没有设置keepalive的 这点可以通过Linux的netstat或ss命令在数据库客户端 即应用端 验证 使用命令netstat ano或ss ano 其中参数 都是显示timerit时器 timer
  • 基于SSM框架的狼途汽车门店管理系统的设计与实现

    基于SSM框架的狼途汽车门店管理系统的设计与实现 付源码 论文 技术实现 本系统基于SSM框架的狼途汽车门店管理系统采用多层框架相结合的方式进行开发 让不同的框架发挥出各自的优势 然后再结合起来处理门店的业务逻辑 分工明确 其中使用了Spr
  • Flink学习4-flink自定义source并行度

    概要 关于source数据源 在flink 官网上介绍了很多对接方式 例如socket elements collect等常见的source 可以见下面链接 https nightlies apache org flink flink do
  • 用户栈和内核栈

    操作系统中 每个进程会有两个栈 一个用户栈 存在于用户空间 一个内核栈 存在于内核空间 当进程在用户空间运行时 cpu堆栈指针寄存器里面的内容是用户堆栈地址 使用用户栈 当进程在内核空间时 cpu堆栈指针寄存器里面的内容是内核栈空间地址 使
  • 浅谈传统企业数字化转型的痛点与困难

    00 导语 在之前的文章中 笔者就一些用户行为分析的知识和概念进行了科普 未免有些生涩难懂 这次咱们聊一个相对轻松易懂的话题 在和一些传统行业的企业 包括但不限于一些老牌的大型企业 合作的过程中 笔者发现 这些企业共同的特点就是历史悠久 资
  • Activiti 5 提示:Default sequenceflow has a condition, which is not allowed

    今天重拾Activiti 5 Spring Boot 流程引擎管理 启动一个简单的请假流程实例 在控制台输出如下错误信息 org activiti engine ActivitiException Errors while parsing
  • Dev C++使用简明教程

    Dev C 使用简明教程 使用高级语言编程时 我们通常使用一个集成开发环境IDE Integrated Developing Enviroment 简称IDE 来进行编辑 编译 运行和调试工作 Dev C 是一个Windows环境下C C
  • fitcknn - Matlab的kNN分类器

    Matlab的kNN分类器 fitcknn 1 构造kNN分类器 1 1 fitcknn函数 1 2 运行实例 1 构造kNN分类器 1 1 fitcknn函数 使用fitcknn函数即可构造 construct kNN分类器 输入 分类集
  • 用MindSpore复现VAN(Visual Attention Network)

    用MindSpore复现VAN Visual Attention Network 1 VAN 简述 2 如何复现 模型的修改 参数初始化 数据预处理 优化器 学习策略 多卡训练设置 混合精度对齐 O0 O2 O3 以及自己设置黑白名单 O1
  • vue.js:基于nodejs使用log4js输出日志文件

    一 问题 开发web项目过程中 常规的console log 只是将信息反映在了浏览器的控制台 我们经常需要输出到文本日志文件 以便开发调试和维护排查 下面介绍log4js在vue项目中的部署与使用 二 解决方案 1 安装log4j 注意
  • IntelliJ IDEA2022(破译版)安装教程

    首先先下载一个压缩包 里面安装包破译插件都有 通过百度网盘分享的文件 JetBrain zip 链接 https pan baidu com s 1mBQUacDIf39AJtR wGZ bw 提取码 P95C 复制这段内容打开 百度网盘A
  • 全局负载均衡(GSLB)的实现方案

    What is GSLB Global Server Load Balancing 中文 全局负载均衡 SLB Server load balancing 是对集群内物理主机的负载均衡 而GSLB是对物理集群的负载均衡 这里的负载均衡可能不
  • python驱动DDT框架应用--实战举例

    步骤 创建一个python file ddttest 引入ddt 更新ddt File Settings 双击pip 搜索框输入 ddt 实例讲解 传入一个参数 import unittest from ddt import ddt dat
  • 2022全国职业技能大赛-网络安全赛题解析总结⑨(超详细)

    2022全国职业技能大赛 网络安全赛题解析总结 自己得思路 模块A 基础设施设置与安全加固 20分 模块B 网络安全事件响应 数字取证调查和应用安全 40分 模块C CTF夺旗 攻击 20分 模块D CTF夺旗 防御 20分 有什么不懂得可
  • openstack调优

    cinder限速 为了减缓来自实例的数据访问速度的减慢 openstack block storage支持对卷数据复制带宽的速率限制 请修改cinder后端配置文件将文件卷复制带宽限制为最高100MB s The upper limit o