阈值

Use of Time-series Based Forecasting Technique for Balancing Load and Reducing Consumption of Energy in a Cloud Data Center

◇◆丶佛笑我妖孽 提交于 2019-12-02 20:10:49
摘要: 由于工作负载分配不均,一些服务器变得过载,而另一些服务器仍处于欠载状态。 为了实现负载平衡,需要从过度使用的节点迁移一些虚拟机。 但是与此不同的是,本文提出了一种负载预测算法,该算法将根据系统的当前以及将来的工作量来决定是否迁移。 因此,一旦声明节点过载,我们提出的技术就不会立即启动虚拟机迁移。 我们的算法已在CloudSim中进行了仿真,并将其性能与现有的基准算法进行了比较。 结果证明,所提出的技术不仅使数据中心更节能,而且更有效地平衡了工作量。 介绍 当前的大多数研究工作[5-12]基于系统的当前利用率。 如果服务器当前过载,则VM迁移将立即启动[7]。 但是由于迁移的开销,不必要的VM迁移可能会导致违反SLA。 结果,每次VM迁移都会增加运营成本。 因此,问题在于确定何时应开始迁移,以使与SLA违规和额外能耗有关的成本降至最低。 为此,提出了一种基于时间序列的负载预测方法,该方法决定了VM迁移的决策。 当主机的利用率水平超过动态上限时,该主机将被声明为过度利用。 如果服务器现在过载,并且下一个预测的负载也大于动态上限,则将进行迁移。 负载预测模型使我们的算法能够成功减少VM迁移的数量,并通过提供绿色IT解决方案来节省能源。 相关工作 动态比较和平衡算法(DCABA)算法使用了两个云优化概念。 首先是在物理机器级别上优化云系统

DDOS攻击

跟風遠走 提交于 2019-12-02 20:06:19
DOS攻击 DOS攻击是Denial of Service的简称,即拒绝服务攻击;其主要通过洪水攻击的方式,耗尽目标机器的资源或者网络带宽,造成服务服务中断或者停止;DOS攻击攻击源为单一电脑; DDOS攻击 DDOS攻击是Distributed Denial of Service的缩写,即分布式拒绝服务攻击;攻击者利用多台已被攻陷的“僵尸”电脑(或者叫肉机),向目标机器发起攻击,从而放大攻击的程度;DDOS攻击源为多台电脑; 攻击的方式 带宽消耗型 Ping of Death(死亡之ping) 是一种向目标电脑发送错误封包的或恶意ping指令的攻击方式;以前的大部分电脑无法处理大于IPv4最大封包大小(65,535字节)的ping封包。因此发送这样大小的ping可以令目标电脑协议栈处理流程中的内存分配超限,导致系统崩溃; Tear Drop(泪滴攻击) 泪滴攻击指的是向目标机器发送损坏的IP包,诸如重叠的包或过大的包载荷。借由这些手段,该攻击可以通过TCP/IP协议栈中分片重组代码中的bug来瘫痪各种不同的操作系统; ICMP Flood(ICMP洪水) ICMP Flood则是向目标机器大量的发送ICMP包,从而占用大量的服务器和带宽资源; UDP Flood(UDP洪水) UDP是一种无连接协议,当数据包通过UDP发送时,所有的数据包在发送和接收时不需要进行握手验证

深入理解HashMap的扩容机制

£可爱£侵袭症+ 提交于 2019-12-02 14:57:21
深入理解HashMap的扩容机制 转载地址: http://www.cnblogs.com/yanzige/p/8392142.html 一、什么时候扩容: 网上总结的会有很多,但大多都总结的不够完整或者不够准确。大多数可能值说了满足我下面条件一的情况。 扩容必须满足两个条件: 1 、 存放新值的时候当前已有元素的个数必须大于等于阈值 2 、 存放新值的时候当前存放数据发生hash碰撞(当前key计算的hash值换算出来的数组下标位置已经存在值) 二、下面我们看源码,如下: * 首先是put()方法 public V put(K key, V value) {     //判断当前Hashmap(底层是Entry数组)是否存值(是否为空数组)     if (table == EMPTY_TABLE) {       inflateTable(threshold);//如果为空,则初始化     }          //判断key是否为空     if (key == null)       return putForNullKey(value);//hashmap允许key为空          //计算当前key的哈希值         int hash = hash(key);     //通过哈希值和当前数据长度,算出当前key值对应在数组中的存放位置     int i

OpenCV中通过滑动条阈值分割多通道图像

谁说我不能喝 提交于 2019-12-02 13:39:03
1、阈值分割 阈值分割法是一种基于区域的图像分割技术。其基本原理是:通过设定不同的特征阈值,把图像象素点分为若干类。根据图像阈值化算法所依据的信息源,可将阈值化方法分为五类:1) 基于聚类的方法:数据聚类中,总的数据集被划分为属性相似的子类,例如将灰度级聚类成为两部分:前景物体部分和背景部分。2) 基于直方图的方法:在直方图的峰、谷和直方图的圆滑曲线上进行分析。3) 基于熵的方法:熵方法将区域分为背景区域和前景区域,前景区域通常是物体部分(在一些热红外图像中,背景部分是物体) 。该方法是通过最小化一个熵函数来实现的,交叉熵函数包含了介于原图和其二值图像之间的保留信息。4) 基于空间方法:使用概率密度函数模型,考虑全局范围内的像素之间的相似关系。5) 基于自适应方法:局部方法不能决定单一的阈值,自适应阈值依赖于局部图像特点。 这里,我们仅结合OpenCV中的API函数 threshold 来介绍一下阈值化。threshold函数原型如下: double threshold(InputArray src, OutputArray dst, double thresh, double maxVal, int thresholdType) Parameters: 第一个参数: 输入的灰度图像的地址。 第二个参数: 输出图像的地址。 第三个参数: 进行阈值操作时阈值的大小。 第四个参数:

【Spring Cloud】服务注册与发现组件——Eureka(二)

ぐ巨炮叔叔 提交于 2019-12-02 06:27:27
一、Eureka原理 1、架构图 首先来看eureka的官方结构图   所有应用作为Eureka Client和Eureka Server交互,服务提供者启动时向Eureka Server注册自己的IP、端口、提供服务等信息,并定时续约更新自己的状态。   服务消费者通过Eureka Server发现得到所需服务的提供者地址信息,然后向服务提供者发起远程调用。   为了保证Eureka注册中心的高可用,可以集群部署,其中一个节点信息又更新时通知其他Server节点,不同节点的Eureka通过Replicate进行数据同步。 2、基本原理 在Eureka响应的过程中,有三个角色,分别是Eureka、服务提供者、服务消费者; 在服务启动后,服务提供者向Eureka注册自己的信息,如调用地址、提供服务信息等 Eureka为服务注册中心,向外暴露自己的地址,负责管理、记录服务提供者的信息,同时将符合要求的服务提供者地址列表返回服务消费者 服务消费者向Eureka订阅服务,表达自己的需求,然后得到服务提供者消息,远程调用即可 Eureka包含两个组件:Eureka Server和Eureka Client,作用如下: Eureka Client是一个Java客户端,主要用来简化和Eureka Server的交互 Eureka Server提供服务发现的能力,各个微服务启动时,通过Eureka

Spring Cloud Alibaba学习笔记(5) - 整合Sentinel及Sentinel规则

北慕城南 提交于 2019-12-01 23:49:06
整合Sentinel 应用整合Sentinel 在dependencies中添加依赖,即可整合Sentinel <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> 搭建Sentinel控制台 可以从这个地址:https://github.com/alibaba/Sentinel/releases 下载控制台应用。因为下载速度较慢,给出一个我下载的版本(1.6.3) 百度云地址:链接: https://pan.baidu.com/s/1UV4OzfjfuBZQfpPb28z0sw&shfl=sharepset 密码: i68g 运行命令启动控制台: java -jar sentinel-dashboard-1.6.3.jar 打开浏览器,输入http://localhost:8080进入控制台页面(账号密码默认sentinel) 应用整合Sentinel控制台 添加配置文件: spring: cloud: sentinel: transport: # 指定sentinel控制台地址 dashboard: localhost:8080 PS: 其他的配置项 spring: cloud:

opencv——常见的操作

試著忘記壹切 提交于 2019-12-01 17:23:17
一 图像阈值处理 准备一张灰度图像 阈值处理通常是设定一个阈值,让图片的所有像素点的值与其比较做出一系列的操作。 在opencv常用的阈值处理函数有五种,分别是THRESH_BINARY、THRESH_BINARY_INV、THRESH_TRUNC、THRESH_TOZERO、THRESH_TOZERO_INV。接下来分别看下这几种处理图片后的效果 1. THRESH_BINAR # 像素值超过127的变成255,否则为0,亮的更亮ret,threshold1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY) 2. THRESH_BINARY_INV # 像素值超过127的变成0,否则为255,亮的更暗ret,threshold2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV) 3. THRESH_TRUNC # 像素值超过127的变成127,否则不变,理解成图片整体变暗 ret,threshold3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC) 4. THRESH_TOZERO # 像素值超过127的不变,否则为0,理解成加大图片的对比度 ret,threshold4 = cv2.threshold(img,127,255,cv2

基于记忆性的中值滤波O(r)与O(1)复杂度的算法实现

南楼画角 提交于 2019-12-01 06:16:21
   本文参考博客: https://www.cnblogs.com/Imageshop/archive/2013/04/26/3045672.html   原生的中值滤波是基于排序算法的,这样的算法复杂度基本在O(r 2 )左右,当滤波半径较大时,排序算法就显得很慢。对此有多种改进算法,这里介绍经典 的Huang算法与O(1)算法,两者都是基于记忆性的算法,只是后者记性更强。   排序算法明显的一个不足之处就是无记忆性。当核向右移动一列后,只是核的最左和最右列数据发生了变化,中间不变的数据应当被存储起来,而排序算法 并没有做到这点。Huang算法的思想是建立一个核直方图,来统计核内的各灰度的像素数。当核向右移动时,就将新的一列所有数据加入到直方图中,同时将最 左列的旧数据从直方图中删除,如下图所示。这样做使得大部分数据能够被记忆,减少重复操作。当直方图更新完毕后,就可以通过从左到右累计像素来找到中值。                  下面是算法具体实现步骤与代码:   1.每行开始都将直方图、像素计数、中值变量清零,将核覆盖的所有像素加到直方图中。   2.计算中值,sumcnt为小于中值灰度的像素数和。如果当前sumcnt大于等于阈值,则表明,实际中值比当前median小,则直方图向左减去像素数,同时median    也减小,直到sumcnt小于阈值

python skimage图像处理(二)

試著忘記壹切 提交于 2019-12-01 05:00:28
python skimage图像处理(二) This blog is from: https://www.jianshu.com/p/66e6261f0279 图像简单滤波 对图像进行滤波,可以有两种效果:一种是平滑滤波,用来抑制噪声;另一种是微分算子,可以用来检测边缘和特征提取。 skimage库中通过filters模块进行滤波操作。 1、sobel算子 sobel算子可用来检测边缘 函数格式为: skimage.filters.sobel(image, mask=None) from skimage import data,filters import matplotlib.pyplot as plt img = data.camera() edges = filters.sobel(img) plt.imshow(edges,plt.cm.gray) 2、roberts算子 roberts算子和sobel算子一样,用于检测边缘 调用格式也是一样的: edges = filters.roberts(img) 3、scharr算子 功能同sobel,调用格式: edges = filters.scharr(img) 4、prewitt算子 功能同sobel,调用格式: edges = filters.prewitt(img) 5、canny算子 canny算子也是用于提取边缘特征

Halcon阈值化算子dual_threshold和var_threshold的理解

谁都会走 提交于 2019-12-01 04:22:28
Halcon中阈值二值化的算子众多,通常用得最多的有 threshold、binary_threshold、dyn_threshold 等。 threshold 是最简单的阈值分割算子,理解最为简单; binary_threshold 是自动阈值算子,它可以自动选出暗(dark)的区域,或者自动选出亮(light)的区域,理解起来也没有难度。 动态阈值算子 dyn_threshold 理解起来稍微复杂一点,使用 dyn_threshold 算子的步骤基本是这样的: ① 将原图进行滤波平滑处理。 ② 用原图和平滑后的图逐个像素做比较,它可以根据参数分割出原图比平滑后的图灰度高(或者低)若干个灰度值的区域。 举例如下: 处理程序是这样的: 1 read_image (Image, 'C:/Users/happy xia/Desktop/dynPic.png') 2 mean_image (Image, ImageMean, 9, 9) 3 dyn_threshold (Image, ImageMean, RegionDynThresh, 10, 'dark') 程序分析:本例中,将图片模糊后,点阵字的黑色扩散了,随之就是字的黑色不如原图那么黑了,那么通过给定的限值“10”和“dark”,就可以将原图比模糊后的图 暗10个灰阶以上 的区域(即黑色文字部分)选出来了。