精华内容
下载资源
问答
  • 优化资源配置的意义
    千次阅读
    2019-01-24 15:53:05

    出版社的资源规划与配置是非常繁重和复杂的,如何在MATLAB进行建模解决该问题是十分有意义的,具体如下:

    1、在MATLAB的主界面编辑器中写入下列代码:

    %lin.m   利用MATLAB自带的优化工具箱求解
    clc
    %各科目各课程的均价
    jsj=[25.8 25.5 28.0 26.0 24.7 25.6 27.0 22.9 25.9 24.5];
    jg=[26.4 27.3 24.9 27.5 23.5 23.5 25.7 32.9 31.5 35.3];
    sx=[21.0 20.2 24.8 19.6 18.6 23.3 13.1 18.4 22.5 25.7];
    yy=[34.4 18.7 33.0 20.6 27.9 21.4 11.4 31.3 23.5 32.3];
    lk=[14.7 18.8 26.6 16.7 13.4 14.8 17.5 24.2];
    jn=[22.5 32.3 20.8 21.6 23.0 35.4];
    hg=[20.0 23.6 25.6 28.0 18.9 26.7];
    dl=[21.5 32.4 24.0 23.8 18.2 22.7];
    hj=[37.5 22.2 20.7 22.7 24.3 32.2];
    %各课程的书号个数百分比
    w1=[0.159090909 0.161931818 0.039772727 0.048295455 0.048295455 0.153409091 0.122159091 0.048295455 0.147727273 0.071022727];
    w2=[0.135678392 0.08040201 0.090452261 0.070351759 0.090452261 0.090452261 0.095477387 0.16080402 0.095477387 0.090452261];
    w3=[0.044354839 0.173387097 0.239247312 0.036290323 0.120967742 0.143817204 0.059139785 0.024193548 0.102150538 0.056451613];
    w4=[0.355971897 0.044496487 0.016393443 0.18969555 0.06088993 0.121779859 0.049180328 0.044496487 0.072599532 0.044496487];
    w5=[0.065789474 0.149122807 0.105263158 0.157894737 0.074561404 0.140350877 0.157894737 0.149122807];
    w6=[0.296482412 0.060301508 0.110552764 0.27638191 0.100502513 0.155778894];
    w7=[0.076190476 0.152380952 0.2 0.123809524 0.123809524 0.323809524];
    w8=[0.175 0.183333333 0.191666667 0.216666667 0.116666667 0.116666667];
    w9=[0.174603175 0.238095238 0.222222222 0.214285714 0.087301587 0.063492063];
    c1=[249.4166666 363.8375 118.3333333 238.4375 162.4166667 276.5818181 503.5486111 83.08333333 387.975 414.9375];
    c2=[1425.5 1875.75 386.6666666 1106.208333 286.4166667 544.9166667 812.9375 575.2916666 2589.9375 1356.0625];
    c3=[746.5416667 847.3785714 8609.903374 1297.5 1462.357843 2617.573864 628.4214286 498.8125 465.6760417 2863.553572];
    c4=[747.8024039 525.45 907.9166667 268.5805555 447.8583334 274.1125 59.91666667 632.3875 347.4464286 301.8333333];
    c5=[5297.5625 7532.660714 8622.2 4606.104167 16071.85416 7891.25 4104.633929 1241.875];
    c6=[681.3461539 266.875 480.25 816.175 1204.683334 1000.75];
    c7=[1038.75 863.95 406.975 162.9166667 782.0833333 427.4583333];
    c8=[226.6666667 644.875 600.125 810.5 295.1666667 1543.666666];
    c9=[593.1875 476.7916667 629.1666666 414.25 718.625 1460.75];
    m=0.7;
    ys=-[sum(jsj.*w1.*c1) sum(jg.*w2.*c2) sum(sx.*w3.*c3) sum(yy.*w4.*c4) sum(lk.*w5.*c5) sum(jn.*w6.*c6) sum(hg.*w7.*c7) sum(dl.*w8.*c8) sum(hj.*w9.*c9)];
    y1=m*ys;
    my=[3.25 3.24 3.24 3.24 3.2 3.2 3.3 3.27 3.2]; %满意度
    pf=0.2*sin(pi/4*(my-2));
    y2=(1-m)*pf.*ys;
    y=y1+y2;
    Aeq=[1 1 1 1 1 1 1 1 1];
    beq=500;
    A=[];b=[];
    vlb=[70 35 145 78 40 38 17 21 21];
    vub=[78 44 155 90 50 42 25 27 27];
    j=[64   69  77  69  73
    37  39  43  39  41
    147 148 153 150 146
    95  87  77  83  85
    44  48  42  50  44
    40  42  40  38  39
    24  25  20  17  19
    22  21  23  27  27
    27  21  25  27  26];
    qn=y*j;    %01-05年的经济总值
    [x,fval]=linprog(y,A,b,Aeq,beq,vlb,vub) %x为06年书号分配方案,fval为相应的经济总值
    

    2、命名保存好至自定义路径下,点击运行,结果如下:

    从命令行窗口的结果中可以看出,出版社在该年度出版的书籍配置已经达到利益最大化,其中fval值代表的是经济效益总值,基本介绍完毕,请大家继续关注!!!

    更多相关内容
  • “三明模式”对优化区域内医疗资源配置借鉴意义.rar
  • “三明模式”对优化区域内医疗资源配置借鉴意义.pdf
  • 矿山设备作为煤矿自动化发展的关键,其优化配置对于提高整个煤矿集团生产效益具有重要意义,采用全生面周期理论对一定量的矿山设备资源下多目标优化配置研究,并以设备资源最大化供给成本最低、矿山机械资源使用效益...
  • 资源优化配置作为解决水资源短缺的重要手段,对于区域社会经济的可持续发展具有重要的意义。水资源优化配置模型是一个结构复杂的综合系统,传统的优化方法难以求得模型的全局最优解。第二代非支配排序遗传算法...
  • 我国煤矿区水资源匮乏,矿井水资源化...探讨了矿井水资源化的相关概念,详述了矿区水资源质量评价内容和方法,介绍了矿区供需分析预测及矿井水资源化可行性研究程序和方法,提出了三种矿区水资源优化配置模式及研究方法。
  • 通过资源优化配置、调整井田边界,实现了崔家寨矿、单侯矿的合理开采布局,将崔家寨四采区划归西细庄矿开采,单...煤炭矿区根据实际变化情况,适时优化资源配置、调整井田边界,对矿区资源开发布局及合理开采具有重要意义
  • 针对非充分农业灌溉,在农业水资源供给量一定的条件下,建立农业水资源大系统优化配置模型,以经济效益最大为目标,对模型进行求解。对山东省桓台县地面水、地下水在各种作物间及在各作物不同生育阶段间进行最优分配...
  • 中国水资源优化配置研究的进展与展望.docx
  • 论文研究-不确定条件下应急管理人力供应链多功能资源配置鲁棒优化问题.pdf, 在紧急甚至灾难状态下, 应急管理物资及人力需求都是爆发性的, 为了满足应急状况的不确定需求...
  • 根据三亚市水资源现状开发利用情况,建立了基于规则的三亚市水资源配置模型,采用三亚市1956~2010年系列水文资料及规划水平年相关数据,实现了2020规划水平年三亚市水资源优化配置。配置成果对促进三亚市水资源与社会...
  • 实现科技资源的优化配置,最大限度地发挥科技资源的效率,对于一个国家或地区经济的...基于DEA(数据包络分析)方法,对河北省科技资源配置进行了横向和纵向对比评价,并指出了河北省科技资源配置优化的方向与重点。
  • 水资源管理和配置中的期权契约研究综述,王慧,王慧敏,建立水期权交易对于规避水资源供需风险、优化资源配置和增加市场金融投资品种具有重要意义。本文对水期权契约在水资源管理和配
  • MySQL优化之my.conf配置详解

    万次阅读 多人点赞 2017-12-29 11:30:08
    最近项目不太忙,所以有时间静心来研究下mysql的优化,对于MySQL的设置是否合理优化,直接影响到网站的速度和承载量!同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的...

     最近项目不太忙,所以有时间静心来研究下mysql的优化,对于MySQL的设置是否合理优化,直接影响到网站的速度和承载量!同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验进行判断,然后设置合理的参数。 下面我们了解一下MySQL优化的一些基础,MySQL的优化我分为两个部分,一是服务器物理硬件的优化,二是MySQL自身(my.cnf)的优化。


    一、服务器硬件对MySQL性能的影响
    ①磁盘寻道能力(磁盘I/O),以目前高转速SCSI硬盘(7200转/秒)为例,这种硬盘理论上每秒寻道7200次,这是物理特性决定的,没有办法改变。MySQL每秒钟都在进行大量、复杂的查询操作,对磁盘的读写量可想而知。所以,通常认为磁盘I/O是制约MySQL性能的最大因素之一,对于日均访问量在100万PV以上的Discuz!论坛,由于磁盘I/O的制约,MySQL的性能会非常低下!解决这一制约因素可以考虑以下几种解决方案: 使用RAID-0+1磁盘阵列,注意不要尝试使用RAID-5,MySQL在RAID-5磁盘阵列上的效率不会像你期待的那样快。

    ②CPU 对于MySQL应用,推荐使用S.M.P.架构的多路对称CPU,例如:可以使用两颗Intel Xeon 3.6GHz的CPU,现在我较推荐用4U的服务器来专门做数据库服务器,不仅仅是针对于mysql。

    ③物理内存对于一台使用MySQL的Database Server来说,服务器内存建议不要小于2GB,推荐使用4GB以上的物理内存,不过内存对于现在的服务器而言可以说是一个可以忽略的问题,工作中遇到了高端服务器基本上内存都超过了16G。


    二、MySQL自身因素当解决了上述服务器硬件制约因素后,让我们看看MySQL自身的优化是如何操作的。 对MySQL自身的优化主要是对其配置文件my.cnf中的各项参数进行优化调整。下面我们介绍一些对性能影响较大的参数。 由于my.cnf文件的优化设置是与服务器硬件配置息息相关的, 因而我们指定一个假想的服务器硬件环境:CPU: 2颗Intel Xeon 2.4GHz 内存: 4GB DDR 硬盘: SCSI 73GB(很常见的2U服务器 ) 。
    下面,我们根据以上硬件配置结合一份已经优化好的my.cnf进行说明:

    [client]
    default-character-set=utf8mb4
    #mysqlde utf8字符集默认为3位的,不支持emoji表情及部分不常见的汉字,故推荐使用utf8mb4
    
    [mysql]
    default-character-set=utf8mb4
    
    [mysqld]
    skip-locking 
    #避免MySQL的外部锁定,减少出错几率增强稳定性。
    
    #skip-name-resolve 
    # 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!
    # 因为docker官方的mysql的dockerfile中有一段代码:echo '[mysqld]\nskip-host-cache\nskip-name-resolve' > /etc/mysql/conf.d/docker.cnf将这个配置写入另一个文件,这里咱们就不用写了,docker默认解析docker name或者service为ip,这样mysql就不用解析了
    
    back_log = 512
    # MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,
    # 然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。
    # 如果期望在一个短时间内有很多连接,你需要增加它。也就是说,如果MySQL的连接数据达到max_connections时,新来的请求将会被存在堆栈中,
    # 以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。
    # 另外,这值(back_log)限于您的操作系统对到来的TCP/IP连接的侦听队列的大小。
    # 你的操作系统在这个队列大小上有它自己的限制(可以检查你的OS文档找出这个变量的最大值),试图设定back_log高于你的操作系统的限制将是无效的。默认值为50,对于Linux系统推荐设置为小于512的整数。
    
    key_buffer_size = 64M
    # 这是mysql优化中非常重要的一项配置
    # 指定用于索引的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写)。注意:该参数值设置的过大反而会是服务器整体效率降低
    # 默认值是16M,对于内存在4GB左右的服务器该参数可设置为384M或512M。
    # 想要知道key_buffer_size设置是否合理,通过命令show global status like 'key_read%';来查看Key_read_requests(索引请求次数)和Key_reads(从i/o中读取数据,也就是未命中索引),
    # 计算索引未命中缓存的概率:key_cache_miss_rate = Key_reads / Key_read_requests * 100%,至少是1:100,1:1000更好,比如我的key_cache_miss_rate = 15754 / 26831941 * 100% = 1/1700,也就是说1700个中只有一个请求直接读取硬盘
    # 如果key_cache_miss_rate在0.01%以下的话,key_buffer_size分配的过多,可以适当减少。
    # MySQL服务器还提供了key_blocks_*参数:show global status like 'key_blocks_u%';
    # Key_blocks_unused表示未使用的缓存簇(blocks)数,Key_blocks_used表示曾经用到的最大的blocks数,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了。
    # 比较理想的设置:Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% < 80%
    
    max_connections = 1500
    # MySQL的最大连接数,默认是100,测试开过1万个连接数,并将他们持久化,内存增加了一个多G,由此算出一个连接大概为100+K。
    # 如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。可以过'conn%'通配符查看当前状态的连接数量,以定夺该值的大小。
    # 比较理想的设置应该是max_used_connections / max_connections * 100% ≈ 80%,当发现这一比例在10%以下的话,说明最大连接数设置的过高了
    # 查看最大的连接数:SHOW VARIABLES LIKE "max_connections";
    # 查看已使用的最大连接:SHOW GLOBAL STATUS LIKE 'max_used_connections';
    # 显示连接相关的设置:SHOW STATUS LIKE '%connect%';
    # 显示当前正在执行的mysql连接:SHOW PROCESSLIST
    
    innodb_buffer_pool_size = 128M
    # InnoDB使用一个缓冲池来保存索引和原始数据, 默认值为128M。
    # 这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少.
    # 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的80%即5-6GB(8GB内存),20-25GB(32GB内存),100-120GB(128GB内存),注意这是在独立数据库服务器中推荐的设置
    # 不要设置过大,否则,会导致system的swap空间被占用,导致操作系统变慢,从而减低sql查询的效率。
    # 注意在32位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制,所以不要设置的太高.
    
    query_cache_size = 0
    # MySQL的查询缓冲大小(从4.0.1开始,MySQL提供了查询缓冲机制)使用查询缓冲,MySQL 5.6以后的默认值为0,MySQL将SELECT语句和查询结果存放在缓冲区中,
    # query cache(查询缓存)是一个众所周知的瓶颈,甚至在并发并不多的时候也是如此。 最佳选项是将其从一开始就停用,设置query_cache_size = 0(MySQL 5.6以后的默认值)并利用其他方法加速查询:优化索引、增加拷贝分散负载或者启用额外的缓存(比如memcache或redis)。
    # 打开query cache(Qcache)对读和写都会带来额外的消耗:a、读查询开始之前必须检查是否命中缓存。b、如果读查询可以缓存,那么执行完之后会写入缓存。 c、当向某个表写入数据的时候,必须将这个表所有的缓存设置为失效
    # 缓存存放在一个引用表中,通过一个哈希值引用,这个哈希值包括查询本身,数据库,客户端协议的版本等,任何字符上的不同,例如空格,注释都会导致缓存不命中。
    # 通过命令:show status like '%query_cache%';查看查询缓存相关设置:
    # # have_query_cache:是否有此功能
    # # query_cache_limit:允许 Cache 的单条 Query 结果集的最大容量,默认是1MB,超过此参数设置的 Query 结果集将不会被 Cache 
    # # query_cache_min_res_unit:设置 Query Cache 中每次分配内存的最小空间大小,也就是每个 Query 的 Cache 最小占用的内存空间大小
    # # uery_cache_size:设置 Query Cache 所使用的内存大小,默认值为0,大小必须是1024的整数倍,如果不是整数倍,MySQL 会自动调整降低最小量以达到1024的倍数 
    # # query_cache_type:控制 Query Cache 功能的开关,可以设置为0(OFF),1(ON)和2(DEMAND)三种,意义分别如下: 
    # # # 0(OFF):关闭 Query Cache 功能,任何情况下都不会使用 Query Cache 
    # # # 1(ON):开启 Query Cache 功能,但是当 SELECT 语句中使用的 SQL_NO_CACHE 提示后,将不使用Query Cache 
    # # # 2(DEMAND):开启 Query Cache 功能,但是只有当 SELECT 语句中使用了 SQL_CACHE 提示后,才使用 Query Cache
    # # query_cache_wlock_invalidate:控制当有写锁定发生在表上的时刻是否先失效该表相关的 Query Cache,如果设置为 1(TRUE),则在写锁定的同时将失效该表相关的所有 Query Cache,如果设置为0(FALSE)则在锁定时刻仍然允许读取该表相关的 Query Cache。 
    # 通过命令:show status like ‘%Qcache%’;查看查询缓存使用状态值:
    # # Qcache_free_blocks:目前还处于空闲状态的 Query Cache 中内存 Block 数目 
    # # Qcache_free_memory:目前还处于空闲状态的 Query Cache 内存总量 
    # # Qcache_hits:Query Cache 命中次数 
    # # Qcache_inserts:向 Query Cache 中插入新的 Query Cache 的次数,也就是没有命中的次数 
    # # Qcache_lowmem_prunes:当 Query Cache 内存容量不够,需要从中删除老的 Query Cache 以给新的 Cache 对象使用的次数
    # # Qcache_not_cached:没有被 Cache 的 SQL 数,包括无法被 Cache 的 SQL 以及由于 query_cache_type 设置的不会被 Cache 的 SQL 
    # # Qcache_queries_in_cache:目前在 Query Cache 中的 SQL 数量 
    # # Qcache_total_blocks:Query Cache 中总的 Block 数量  
    # 如果Qcache_hits的值也非常大,则表明查询缓冲使用非常频繁,且Qcache_free_memory值很小,此时需要增加缓冲大小;
    # 如果Qcache_hits的值不大,且Qcache_free_memory值较大,则表明你的查询重复率很低,查询缓存不适合你当前系统,这种情况下使用查询缓冲反而会影响效率,可以通过设置query_cache_size = 0或者query_cache_type 来关闭查询缓存。 
    # Query Cache 的大小设置超过256MB,这也是业界比较常用的做法。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲
    
    max_connect_errors = 6000
    # 对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST。防止黑客  
    
    open_files_limit = 65535
    # MySQL打开的文件描述符限制,默认最小1024;当open_files_limit没有被配置的时候,比较max_connections*5和ulimit -n的值,哪个大用哪个,
    # 当open_file_limit被配置的时候,比较open_files_limit和max_connections*5的值,哪个大用哪个。
    
    table_open_cache = 128
    # MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。默认值64
    # 假定系统有200个并发连接,则需将此参数设置为200*N(N为每个连接所需的文件描述符数目);
    # 当把table_open_cache设置为很大时,如果系统处理不了那么多文件描述符,那么就会出现客户端失效,连接不上
    
    max_allowed_packet = 4M
    # 接受的数据包大小;增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。例如,仅当你发出长查询或MySQLd必须返回大的结果行时MySQLd才会分配更多内存。
    # 该变量之所以取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而导致内存溢出。
    
    binlog_cache_size = 1M
    # 一个事务,在没有提交的时候,产生的日志,记录到Cache中;等到事务提交需要提交的时候,则把日志持久化到磁盘。默认binlog_cache_size大小32K
    
    max_heap_table_size = 8M
    # 定义了用户可以创建的内存表(memory table)的大小。这个值用来计算内存表的最大行数值。这个变量支持动态改变
    
    tmp_table_size = 16M
    # MySQL的heap(堆积)表缓冲大小。所有联合在一个DML指令内完成,并且大多数联合甚至可以不用临时表即可以完成。
    # 大多数临时表是基于内存的(HEAP)表。具有大的记录长度的临时表 (所有列的长度的和)或包含BLOB列的表存储在硬盘上。
    # 如果某个内部heap(堆积)表大小超过tmp_table_size,MySQL可以根据需要自动将内存中的heap表改为基于硬盘的MyISAM表。还可以通过设置tmp_table_size选项来增加临时表的大小。也就是说,如果调高该值,MySQL同时将增加heap表的大小,可达到提高联接查询速度的效果
    
    read_buffer_size = 2M
    # MySQL读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。
    # 如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能
    
    read_rnd_buffer_size = 8M
    # MySQL的随机读缓冲区大小。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机读缓存区。进行排序查询时,
    # MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大
    
    sort_buffer_size = 8M
    # MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段。
    # 如果不能,可以尝试增加sort_buffer_size变量的大小
    
    join_buffer_size = 8M
    # 联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享
    
    thread_cache_size = 8
    # 这个值(默认8)表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,
    # 如果线程重新被请求,那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,
    # 增加这个值可以改善系统性能.通过比较Connections和Threads_created状态的变量,可以看到这个变量的作用。(–>表示要调整的值)
    # 根据物理内存设置规则如下:
    # 1G  —> 8
    # 2G  —> 16
    # 3G  —> 32
    # 大于3G  —> 64
    
    query_cache_limit = 2M
    #指定单个查询能够使用的缓冲区大小,默认1M
    
    ft_min_word_len = 4
    # 分词词汇最小长度,默认4
    
    transaction_isolation = REPEATABLE-READ
    # MySQL支持4种事务隔离级别,他们分别是:
    # READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.
    # 如没有指定,MySQL默认采用的是REPEATABLE-READ,ORACLE默认的是READ-COMMITTED
    
    log_bin = mysql-bin
    binlog_format = mixed
    expire_logs_days = 30 #超过30天的binlog删除
    
    log_error = /data/mysql/mysql-error.log #错误日志路径
    slow_query_log = 1
    long_query_time = 1 #慢查询时间 超过1秒则为慢查询
    slow_query_log_file = /data/mysql/mysql-slow.log
    
    performance_schema = 0
    explicit_defaults_for_timestamp
    
    #lower_case_table_names = 1 #不区分大小写
    
    skip-external-locking #MySQL选项以避免外部锁定。该选项默认开启
    
    default-storage-engine = InnoDB #默认存储引擎
    
    innodb_file_per_table = 1
    # InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间
    # 独立表空间优点:
    # 1.每个表都有自已独立的表空间。
    # 2.每个表的数据和索引都会存在自已的表空间中。
    # 3.可以实现单表在不同的数据库中移动。
    # 4.空间可以回收(除drop table操作处,表空不能自已回收)
    # 缺点:
    # 单表增加过大,如超过100G
    # 结论:
    # 共享表空间在Insert操作上少有优势。其它都没独立表空间表现好。当启用独立表空间时,请合理调整:innodb_open_files
    
    innodb_open_files = 500
    # 限制Innodb能打开的表的数据,如果库里的表特别多的情况,请增加这个。这个值默认是300
    
    innodb_write_io_threads = 4
    innodb_read_io_threads = 4
    # innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求,根据你的 CPU 核数来更改,默认是4
    # 注:这两个参数不支持动态改变,需要把该参数加入到my.cnf里,修改完后重启MySQL服务,允许值的范围从 1-64
    
    innodb_thread_concurrency = 0
    # 默认设置为 0,表示不限制并发数,这里推荐设置为0,更好去发挥CPU多核处理能力,提高并发量
    
    innodb_purge_threads = 1
    # InnoDB中的清除操作是一类定期回收无用数据的操作。在之前的几个版本中,清除操作是主线程的一部分,这意味着运行时它可能会堵塞其它的数据库操作。
    # 从MySQL5.5.X版本开始,该操作运行于独立的线程中,并支持更多的并发数。用户可通过设置innodb_purge_threads配置参数来选择清除操作是否使用单
    # 独线程,默认情况下参数设置为0(不使用单独线程),设置为 1 时表示使用单独的清除线程。建议为1
    
    innodb_flush_log_at_trx_commit = 2
    # 0:如果innodb_flush_log_at_trx_commit的值为0,log buffer每秒就会被刷写日志文件到磁盘,提交事务的时候不做任何操作(执行是由mysql的master thread线程来执行的。
    # 主线程中每秒会将重做日志缓冲写入磁盘的重做日志文件(REDO LOG)中。不论事务是否已经提交)默认的日志文件是ib_logfile0,ib_logfile1
    # 1:当设为默认值1的时候,每次提交事务的时候,都会将log buffer刷写到日志。
    # 2:如果设为2,每次提交事务都会写日志,但并不会执行刷的操作。每秒定时会刷到日志文件。要注意的是,并不能保证100%每秒一定都会刷到磁盘,这要取决于进程的调度。
    # 每次事务提交的时候将数据写入事务日志,而这里的写入仅是调用了文件系统的写入操作,而文件系统是有 缓存的,所以这个写入并不能保证数据已经写入到物理磁盘
    # 默认值1是为了保证完整的ACID。当然,你可以将这个配置项设为1以外的值来换取更高的性能,但是在系统崩溃的时候,你将会丢失1秒的数据。
    # 设为0的话,mysqld进程崩溃的时候,就会丢失最后1秒的事务。设为2,只有在操作系统崩溃或者断电的时候才会丢失最后1秒的数据。InnoDB在做恢复的时候会忽略这个值。
    # 总结
    # 设为1当然是最安全的,但性能页是最差的(相对其他两个参数而言,但不是不能接受)。如果对数据一致性和完整性要求不高,完全可以设为2,如果只最求性能,例如高并发写的日志服务器,设为0来获得更高性能
    
    innodb_log_buffer_size = 4M
    # 此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据。MySQL开发人员建议设置为1-8M之间
    
    innodb_log_file_size = 32M
    # 此参数确定数据日志文件的大小,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间
    
    innodb_log_files_in_group = 3
    # 为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3
    
    innodb_max_dirty_pages_pct = 90
    # innodb主线程刷新缓存池中的数据,使脏数据比例小于90%
    
    innodb_lock_wait_timeout = 120 
    # InnoDB事务在被回滚之前可以等待一个锁定的超时秒数。InnoDB在它自己的锁定表中自动检测事务死锁并且回滚事务。InnoDB用LOCK TABLES语句注意到锁定设置。默认值是50秒
    
    bulk_insert_buffer_size = 8M
    # 批量插入缓存大小, 这个参数是针对MyISAM存储引擎来说的。适用于在一次性插入100-1000+条记录时, 提高效率。默认值是8M。可以针对数据量的大小,翻倍增加。
    
    myisam_sort_buffer_size = 8M
    # MyISAM设置恢复表之时使用的缓冲区的尺寸,当在REPAIR TABLE或用CREATE INDEX创建索引或ALTER TABLE过程中排序 MyISAM索引分配的缓冲区
    
    myisam_max_sort_file_size = 10G
    # 如果临时文件会变得超过索引,不要使用快速排序索引方法来创建一个索引。注释:这个参数以字节的形式给出
    
    myisam_repair_threads = 1
    # 如果该值大于1,在Repair by sorting过程中并行创建MyISAM表索引(每个索引在自己的线程内) 
    
    interactive_timeout = 28800
    # 服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。默认值:28800秒(8小时)
    
    wait_timeout = 28800
    # 服务器关闭非交互连接之前等待活动的秒数。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,
    # 取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义)。参数默认值:28800秒(8小时)
    # MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到MySQL Server处理完相应的操作后,
    # 应该断开连接并释放占用的内存。如果你的MySQL Server有大量的闲置连接,他们不仅会白白消耗内存,而且如果连接一直在累加而不断开,
    # 最终肯定会达到MySQL Server的连接上限数,这会报'too many connections'的错误。对于wait_timeout的值设定,应该根据系统的运行情况来判断。
    # 在系统运行一段时间后,可以通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明该参数设置的过大,
    # 可以进行适当的调整小些。要同时设置interactive_timeout和wait_timeout才会生效。
    
    [mysqldump]
    quick
    max_allowed_packet = 16M #服务器发送和接受的最大包长度
    
    [myisamchk]
    key_buffer_size = 8M
    sort_buffer_size = 8M
    read_buffer = 4M
    write_buffer = 4M


    总结:mysql配置项的优化是一件非常复杂且长期坚持的事情,因为不同的并发级别会导致某个配置项不符合当前的情况,所以希望能和大家一起持续关注着mysql的优化,也同样欢迎大家列出自己再mysql优化中遇到的各种坑,让大家学习和借鉴。


    展开全文
  • 王凌 吴楚格 范文慧(清华大学 自动化系,北京 100084)首发:系统仿真学报摘 要随着物联网和移动终端的迅速发展,边缘计算技术应运而生,通过将计算和存储配置在互联网边缘,处理...

    王凌   吴楚格   范文慧

    (清华大学 自动化系,北京 100084)

    首发:系统仿真学报

    摘 要 随着物联网和移动终端的迅速发展,边缘计算技术应运而生,通过将计算和存储配置在互联网边缘,处理物联网终端产生的大量数据,应对时延敏感型应用请求。为提高计算资源使用效率,优化性能指标,边缘计算资源分配与任务调度优化问题受到了广泛关注。边缘计算资源的地理分散性、异构性以及对性能、能耗、费用、稳定性等的需求,增加了优化调度的复杂性。通过介绍边缘计算和物联网、云计算协同的系统模型,给出优化的指标、调度模型及其求解算法,包括精确算法、启发式方法及智能优化方法等,归纳典型应用案例,指出有待进一步研究的内容和方向,有助于促进边缘计算的发展。

    关键词 边缘计算;资源分配;调度;优化;建模与仿真



    0.

    引言

    随着移动设备的更新换代,物联网快速发展,地理上分散分布的终端设备向计算平台提出了低时延、高带宽、数据私密性等需求,在云计算基础上文献[1]提出边缘计算的概念,通过将数据推到互联网边缘来提升系统整体的可用性和可拓展性;文献[2]提出雾计算的概念,通过将计算和存储设备配置在互联网边缘来减少互联网数据传输量,从而降低时延、节省带宽及相关费用。

    目前,边缘计算和雾计算引起了学术界和工业界的极大关注[3]。文献[4]介绍了雾计算的关键技术,如计算、通讯、存储、命名和私密性等,列举了常见的雾计算应用。文献[5]综述了雾计算的概念、框架及编程模型、设计及规划、资源管理、操作、软件及工具、硬件及协议等。多个国家联合成立了OpenFog联盟[6]。雾计算和边缘计算紧密相关,相比于雾计算,边缘计算更强调边缘设备间资源的相互协同,是处理云上游数据或物联网下游数据的技术[7],而雾计算服务的实现需要边缘技术的支撑。

    资源分配和任务调度优化是计算系统的重要研究问题之一,其解决方案影响资源使用的有效性和用户的服务体验[8]。鉴于边缘计算资源的异构性、处理器的地理分散性以及电池耗电量等优化需求,对资源分配和任务调度优化形成了新的挑战。文献[9]梳理了边缘计算场景下的优化问题,总结了40多项优化指标,并按优化场景分类综述相关研究。

    针对边缘计算资源配置问题,文献[10]综述了优化算法类型、优化目标和约束。基于上述工作,本文将介绍“物联网-边缘计算-云计算”系统架构及相关描述模型,总结边缘计算场景下资源分配调度问题中的常见优化指标、约束及典型算法,并按抽象调度模型对研究工作进行分类,概述问题的数学模型与求解方法,介绍典型应用,并指出进一步研究的内容,有助于研究人员根据场景、目标、调度问题等建立调度模型,设计优化算法,获得有效调度方案。


    1. 

    系统模型

    云计算中心协同计算场景下的资源调度优化,如图1“云-边-端”3层计算系统[11]

    9c891e8a81dd0254a2e23423a5e73712.png

    图1   “云-边-端”计算系统结构

      Fig. 1 Three-tier computing system architecture

    第1层是物联网层[12],传感器、处理器根据应用需求感知、测量和收集原始数据,在本地处理大量数据或将其上传至计算节点。此外,物联网装置被划分为不同集合,相同集合的多个装置能够提高容错度。

    第2层是边缘计算层,位于互联网边缘,靠近数据源。边缘计算节点连接物联网,边缘节点之间可以互相通信,提供计算和存储功能。文献[13]将该层分为抽象层和协同层。文献[14]将边缘节点分为计算和网关节点,其中计算节点包含控制、计算和通讯模块,负责接收和处理应用请求,网关节点包含期望评级和应用分配单元,负责评估应用请求的优先级并为应用分配处理节点。

    第3层是云计算层。一般而言,云计算中心的计算和存储能力强于雾节点,提供高聚合度的集中计算、存储等服务,但云计算中心和本地的长距离往往会造成的传播和传输时延,导致数据型任务上传云节点时存在难以容忍的延时。

    对于上述3层计算系统的架构模型,文献[15]综述了集成物联网+雾+云C2F2T (Cloud to Fog to Things)解析模型、Petri网模型、整数规划模型等以及预测和分析系统的各项指标。文献[16]提出了解析模型,预测给定应用的计算资源需求和服务质量QoS (quality of service)。文献[17]通过实例分析了物联网应用对边缘计算的需求,考察异构、结构分层以及大规模设施等特性,为边缘计算系统、服务质量、应用及操作建立解析模型。文献[18]建立了边缘计算节点的排队模型,给出各环节时延的解析模型,基于模型量化卸载策略对系统相关软硬件的影响,并观测系统参数变化。文献[19]利用Petri网模型评估其边缘计算架构的性能,并与标准移动众包架构进行对比。文献[20]利用Petri网模型评估数据的可追溯性。对系统的各组件及参数建模,可以辅助验证优化算法的可行性、有效性、优化性。


    2. 

    优化目标及约束

    将用户、运营方等方面的需求建模为优化目标与约束,进而寻求问题的解决方案非常重要。文献[10]整理了280项雾计算下的优化指标,包括时延、能耗、收益与花费、设备相关和其他5大类。本节从性能、能耗、花费3个方面介绍边缘计算下优化目标和约束的建模与典型优化方法。

    2.1 性能指标

    2.1.1 时延

    服务时延或反应时间,是指应用提交请求和收到回应间的耗时[18]。时延是边缘计算资源调度优化的重要指标。文献[10]将时延分为计算节点上耗时、节点间传输耗时及计算节点间迁移时间共6类。

    针对边缘计算环境,文献[18]给出了时延解析模型,任务的服务时延由不同计算节点的处理时延按分配概率加权计算得到。文献[21]考虑架构中的网关数量以及缓冲区占用率等情况,定义了多个时延计算方程。除理论模型外,文献[22]对雾计算时延进行了实验统计分析,统计了不同应用、http需求等在不同雾计算设备、不同环境下的时延,发现II型广义极值分布能较好地模拟时延,指出小型计算任务时延取决于通讯时间且不同环境对时延的影响最高可达11倍。此外,针对时延的稳定性实验表明,时延敏感型任务应将根据环境变化而调整分配方案。目前,以最小化时延为目标的算法很多,分布式优化策略、计算任务卸载、任务调度等方法或模型都旨在降低时延进而提升系统性能。

    2.1.2 截止时间

    除最小化时延外,任务的截止时间可表示任务的紧迫程度。实时系统[23]给出硬期限和软期限的定义。不同任务的时延敏感度不同,一些任务未能在期限前完成则会出现严重后果,于是被定义为硬期限约束任务,否则为软期限约束任务。若完成时间大于期限,则存在拖期,即完成时间和期限之差。此外,时间相关效率函数也被用来描述任务完成时间的要求,譬如用阶跃函数刻画硬约束,用衰减指数函数作为延时函数,任务完成时间越晚则其完成效用越低。

    文献[24]提出在线调度方法,最大化满足截止时间的任务个数。文献[25]将用户体验转化为任务截止时间并作为问题的约束,优化获得满足条件的可行解。文献[26]在定义适配值时对超过截止时间的应用添加惩罚项。文献[27]将工作流中的子任务按期限类型分为硬期限和软期限约束任务,分别考虑其合法性和拖期大小。文献[22]用概率分布函数模拟任务时延,对任务完成的时间函数与设定时间相关效率函数的积分作为任务完成效率,并最大化任务分配问题的任务完成效率。目前,根据任务特征及边缘计算场景需求选择合适的指标,设计特定优化算法,是截止时间相关优化问题的重点。

    2.1.3 用户体验质量

    相比于客观的时延等性能,QoE的定义依赖于用户、环境和服务,较为主观。在国际电信联盟给出的定义基础上,文献[28]将QoE定义为用户在一定的客观环境中对所使用的服务或者业务对整体的认可程度。常见的QoE优化问题要求提高用户对音频质量、视频清晰度的满意程度等。随着移动端视频需求的增大,对QoE的量化、建模及优化的研究日益增多。边缘计算作为降低即时应用时延的解决方案之一,可提高用户满意度,通过部署雾节点提供雾计算服务,因而考虑QoE的边缘资源分配和任务调度策略可为用户提供更优质的服务。

    为了优化用户玩交互游戏的体验,文献[29]综合反应时间、网络拥塞和服务覆盖度作为用户的QoE,并设计Cloud-Fog系统,从而降低时延,提升终端用户的覆盖度。文献[30]利用QoE指标估计和指导下一步的资源分配。另外,文献[15]将QoE设为边缘计算资源配置算法的唯一优化目标,根据用户对应用的期待和边缘计算资源状态,匹配“特定应用-计算节点”,从而优化整体满意度。目前,如何与具体问题结合来量化QoE并设计优化算法,满足用户需求并提升满意度,是重点的研究工作。

    2.2 能耗指标

    能耗是数据中心的主要开销之一,包括计算机器、制冷散热设备耗电等。将计算设备移至网络边缘,保证资源有限的电池供电设备正常运行非常重要。文献[31]探讨了边缘计算是否能节省云计算能耗,讨论了下载、更新、预加载数据量等应用以及不同场景下用电量的变化。研究不同情况下的资源分配和任务调度对降低能耗很有意义。

    2.2.1 电池电量

    边缘计算环境下,移动终端设备的电池电量约束问题亟待研究,其中耗电量分为监测、计算、通讯和执行4部分[32]。监测耗电量与其数据包大小、时长相关;通讯分为上传和接收2部分,上传能耗与数据量及传输距离正相关,接收能耗与数据量正相关;计算能耗取决于具体硬件参数;执行能耗与具体执行应用和次数正相关。文献[33]在应用截止时间约束下,分配和排序任务最小化物联网设备总能耗。此外,文献[34]将系统的生存周期定义为所有传感器中最先耗尽电量的传感器的工作时长,进而延长系统生存周期成为一个优化目标。目前,如何有效的节约移动端电量,并维持系统稳定,是研究工作的重点。

    2.2.2 其他能耗

    文献[31]给出了路由器等多用户访问的网络设备和家用服务器等计算设备的能耗模型,其中网络设备主要依据数据流量计算能耗,服务器能耗则基于时间,同时指出微型服务器接入特定类型网络、活跃时间呈一定比例、下载活动占较大比例的应用等情形下边缘计算可节省云计算中心的能耗。

    文献[35]将边缘计算节点能耗建模为关于计算量的单增严格凸函数,并用二次函数刻画其特性,用服务器开关状态以及处理器CPU频率的一次函数刻画云计算节点能耗。文献[36]将能耗分为空闲时和占用时能耗2类,可以通过对时间积分计算。目前,针对边缘计算和云计算节点的能耗优化,包括总能耗的优化、性能和能耗的多目标均衡优化。

    2.3 花费指标

    经济指标是用户选择资源以及运营商提供解决方案时需要考虑的重要因素。云计算的广泛应用一定程度上取决于其成功的“pay-as-you-go”商业模式。可见,服务的合理定价和对商业成本的优化是边缘计算亟待解决的重要问题。资源调度优化的花费主要集中于计算、存储和网络等资源成本。

    文献[37]在考虑性能、虚拟机等约束下,将虚拟机的配置成本和数据通讯的花费之和作为优化目标,获得最优的用户基站选择、虚拟机-基站的配对等解决方案。文献[38]考虑城域网中的经济成本问题,将应用分为只需计算、只需存储以及存储与计算等类别,以计算节点计算、存储、链路容量和时延为约束,最小化支持网络拓扑结构下的经济成本,包括计算、存储、城域网带宽和核心计算节点上下游各项的成本。同时,参考谷歌云等的价格模型给出了不同计算节点的计算、存储的价格,价格差异将导致不同应用的资源选择方案不同。目前,如何将定价模型和实际应用结合,根据边缘计算特点定义花费和建立优化模型,是研究工作的重点。

    3. 

    调度优化模型及求解方法

    本节针对“云-边-端”计算系统,介绍单一任务的卸载或分配决策、多任务分配及调度、边缘计算环境中的资源约束与和任务优先关系约束、相应的求解方法。体系结构如图2所示,其中决策变量为xi,j,r=1,表示任务i在计算节点j上第r个处理。

    0f65a9eada25112e236bf39fff21d8a5.png

    图2   边缘计算资源分配与任务调度优化

      Fig. 2 Edge computing resource allocation and task scheduling optimization


    3.1 独立任务卸载/分配

    3.1.1 问题与模型

    边缘计算旨在减轻网络负载、分担终端计算任务,而独立任务的卸载决策则是基础。文献[39]探讨了移动终端的任务卸载决策问题,包括何时卸载、静止/动态、确定任务是否卸载、卸载收益等。文中指出卸载的目的是提高性能、节省能耗,并指出很有必要卸载高计算量和低数据量的任务。文献[40]在智能网关场景下,根据能量状态、数据类型和通讯频率进行卸载决策,同时介绍了物联网中间件支撑卸载决策的技术手段与常见的任务卸载场景。

    独立任务的卸载或分配,可看作x1,j,1的0/1决策问题,如图2所示,即确定任务是否分配至节点j。多个独立任务的卸载或分配,可看作xi,j,1的0/1决策问题,即任务i和节点j的匹配问题,以实现负载均衡。如果计算节点特定时间内最多只能处理一个任务时,可看作xi,j,r的0/1决策问题,即任务-节点匹配和节点上的任务排序问题。

    排队模型、状态转移方程等解析模型可用于分析边缘节点任务卸载策略的有效性。文献[41]针对环形拓扑结构边缘节点间的负载均衡问题,建立了随机游走模型,分析了超负荷节点是否应向相邻节点卸载任务。文献[21]基于边缘节点和任务的数据、缓存状态、数据接收和计算能力等特点,建立了状态更新、网关和云计算节点排队模型,并提出了分布式算法优化整体时延。文献[42]将车辆视作边缘节点构建交通管理模型,利用排队论和马尔科夫转移方程对任务处理状态建模,进而决策节点间的计算转移。

    3.1.2 启发式策略

    智能终端设备具有决策能力,鉴于边缘计算环境的动态性、不确定性,研究边缘节点根据环境和自身状态的分布式在线决策算法十分必要。文献[43]对每个终端预先分别计算各项任务在边缘和云层的能耗,进而确定是否卸载任务。文献[18]提出了分布式卸载策略,边缘节点针对请求判断计算时延是否超过阈值,进而将请求加入队列,或获取周边节点状态选择最佳卸载对象,若无合适节点则上传云端处理。同时,文中提出解析模型分析了分布式算法的可行性和有效性。文献[44]讨论了全卸载、部分卸载等策略,利用改进交替方向乘子法同时优化用户的平均时延和能耗。

    针对多任务分配问题,文献[24]分别给出了集中式和分布式在线优化算法,最大化满足截止期限的任务个数,其中分布式算法在接入节点和边缘节点实现。文献[15]对QoE建立模糊模型,给出了雾计算环境下最大化QoE的多任务分配方案。


    3.2 资源约束下的任务分配

    3.2.1 优化问题

    由于计算系统的计算、存储、带宽、电池电量等资源有限,将有限资源作为约束给出调度优化模型,更符合现实。文献[45]提出了带CPU容量、电池电量约束的任务-节点分配模型。文献[11]将任务分配问题按约束分为网络、节点、能耗和应用4类,其中计算节点约束分为软件约束(如库、操作系统)和硬件约束(如内存、CPU、存储)。

    求解资源约束下的任务分配问题即寻找满足约束的任务-计算节点分配方案。对于计算、内存、带宽有限的物理设备或虚拟机,可建立相应的多维背包[46]模型。

    3.2.2 模型与算法

    资源约束可表示为Σirxi,j,rai,jAj,如图2所示,其中Σrxi,j,r=1表示任务i分配至节点jai,j表示任务i占用的某类资源量,Aj表示节点j该资源总量。当没有任务处理时间约束时,可建模为多个物品分配到若干多维背包的匹配问题。考虑边缘计算节点的容量,文献[22]给出容量有限情况的动态规划求解方法,通过计算任务分配收益、拒绝无法分配的任务,最大化整体处理效率。针对工业4.0场景下的任务-网关分配问题,文献[26]利用负载-风险模型定义任务分配的可靠性,提出相应的贪婪算法寻求同时满足时延和可靠性要求的方案。文献[47]建立混合整数规划模型,确定满足边缘节点CPU、内存和存储容量约束的利用率最大化且的任务分配方案。文献[17]标记节点的硬软件参数,设计并实现了任务分配的回溯搜索算法。

    对于一些复杂情况,资源约束下的任务分配问题仅是子问题之一。针对边缘节点的容量约束和云节点的CPU频率约束下的负载均衡问题,文献[35]将原始问题分解成边缘节点负载分配、云节点负载分配和最小化时延指派问题3个子问题,分别利用凸优化、Benders分解和匈牙利算法求解。文献[48]约定存储服务器预存任务图像后才能处理相关的读写操作,即任务图像-存储器的匹配子问题,通过松弛0–1决策变量利用贪婪算法获得可行解。

    3.2.3 智能算法

    鉴于在诸多复杂问题上的优越性能,智能算法在本领域得到了推广应用。文献[49]采用分布式遗传算法(Genetic Algorithm,GA)求解CPU、内存和带宽约束下混合云任务分配问题,利用有偏随机键和特定解码规则处理不可行解,最大化同时处理的任务数。文献[25]用GA求解任务-公交车的分配问题,在节点计算容量约束下寻求经济成本最低的方案。文献[50]提出了一种共生有机体搜索算法,在不同场景下向虚拟机分配任务,评价成本、网络占用和能耗指标。针对CPU算力约束下的边缘计算容器迁移问题,文献[51]将迁移策略建模为多维马尔科夫过程空间,并利用深度强化学习快速决策。


    3.3 带优先约束任务调度/卸载

    3.3.1 优化问题

    为了加快计算进程,将分布式计算系统中的复杂任务分割为多个子任务形成任务流,进而分配到处理器上并行处理。由于部分任务的计算需要前序任务的结果数据,任务间存在优先约束关系,可利用有向无环图DAG (directed acyclic graph)抽象和建模工作流,图节点代表子任务,节点间连线代表子任务间的优先约束关系。文献[52]给出了DAG调度问题的树形图,考虑任务间是否存在通讯时间、处理器资源是否有限、处理器是否完全连接等多种情况。

    3.3.2 数学模型及相关算法

    任务间优先约束表示为EST(j)≤CT(i),∀ij,如图2所示,其中EST(j)表示任务j可开始处理的最早时间,CT(i)表示任务i的完成时间,ij表示任务ij存在优先约束。

    针对移动端卸载问题,设定处理器同一时间可以处理多个任务,文献[53]提出了基于动态规划的确定性时延约束任务分割算法,证明了其次优性。针对截止时间约束下的能耗最小化问题,不限制DAG的拓扑结构,但约定处理器在同一时间只能处理一个任务,文献[54]给出了边缘计算节点与远端云节点协同环境下的DAG混合整数规划模型。该问题包含具有NP难特性的一般性指派问题,目前没有多项式时间的最优化方法。文献[54]利用松弛整数规划模型中的0–1变量将问题转换为凸优化问题,进而设计启发式方法。针对多DAG的移动终端卸载问题,文献[55]提出了混合整数规划模型,对是否将任务上传云端进行决策,并在截止时间约束下优化能耗。

    3.3.3 启发式方法

    DAG调度优化方法主要包括启发式方法、智能算法及混合算法[56],其中启发式方法主要分为列表调度、聚类和任务复制3类。列表调度方法按优先级排列任务,然后从待调度的任务中选择最高优先级的任务分配给合适的处理器[57];聚类方法将任务聚类,直到类别数与处理器数相等[58,59]。任务复制将传输数据量大的任务复制到多个处理器上处理,进而降低时延。

    在“云-边-端”系统下,文献[60]将前向排名作为列表调度准则,同时优化时延以及云和边缘计算节点的计算与通讯成本。同时考虑截止时间和费用,文献[54]利用下界估计等方法为DAG的子任务分配截止时间并为任务分配计算节点。参照任务截止时间的顺序,文献[61]依据任务的最早完成时间插空分配虚拟机,进而优化整体时间性能。

    3.3.4 智能算法

    区别于启发式规则,智能算法力争全局的优化性能。文献[62]利用GA优化任务-边缘节点群的分配。文献[12]采用概率表征任务间的前后位置关系,在基于启发式方法的DAG预分割后,利用双变量相关的分布估计算法排序任务,同时优化应用整体完成时间和边缘节点能耗。文献[27]考虑任务截止时间信息,利用EDA优化总拖期。针对任务-节点分配问题,文献[63]利用粒子群算法优化成本和完成时间的加权目标。

    针对边缘计算资源分配和任务调度问题,从任务卸载决策、资源约束下的任务分配、DAG调度与分配的上述综述可见:一些建模工作比较系统,在剖析系统特性的基础上提出了精确方法,但算法复杂性高,占用计算资源多,不适用于大规模问题;大部分工作采用启发式策略分配资源和调度任务,尽管面对大规模任务和异构化的资源,这类方法设计方便、易于实现且不占用过多的计算资源,但难以取得很好的整体优化效果;智能算法适用于强约束、多目标的复杂问题,可拓展性强,但很难适用于分布式在线问题等实时性要求高的场景。


    4. 

    应用与仿真验证

    边缘计算技术已在增强现实、图像识别、网站性能优化、智慧城市、车联网等诸多领域得到成功应用[64]。边缘计算资源分配和任务调度优化亦在相关领域发挥了巨大作用。为了对资源管理策略进行评价,边缘环境的实证分析十分必要。由于现实边缘计算环境搭建难度大、实体变更成本高,仿真已成为重要的工具。通过提供自定义接口,可重复评估实验,进而验证资源分配与任务调度优化的算法性能。

    对边缘计算环境建模与实验运行的现有模拟器与工具包有Edgecloudsim[65],iFogSim[66],DeFog[67]等。其中,DeFog可建模边缘计算环境,搜集测试应用,譬如深度学习目标检测、语音识别、在线游戏等,标记测量并发数、成功率、平均时延和上传下载数据量等指标,辅助分析算法的有效性。文献[47,68]则利用iFogSim验证资源调度策略的有效性。

    除了仿真验证,一些调度算法被用于真实边缘场景解决实际问题,表1列举了一些实际案例,包括制造业[26,36]、交通运输[25,42]、视频处理[20,55,68]等领域。当然,对于不同领域的应用,目标以及相应的建模与优化算法都有所不同。

    表1   应用场景与调度问题

    Tab. 1   Applications and scheduling problems

    b309295b40a29fce9880d6efa6a4d642.png

    对于任务卸载问题,算法主要决策任务的派发与卸载,譬如文献[68]将视频监控应用分为用户交互、目标探测和追踪等任务,算法主要解决任务分类、处理器类型匹配等问题。对于资源约束问题,文献[20,26]考虑带宽、CPU等约束,文献[25]将完成时间和边缘节点存储作为约束,文献[69]则将实时功耗的上限作为约束。对于任务间无法忽视的优先约束,文献[17,55]将其设置为问题的一个维度进行调度优化。


    5. 

    结论

    随着边缘计算的快速发展,资源分配和任务调度的研究面临诸多挑战,从5个方面进行讨论。

    (1) 理论

    在理论层面,面向复杂问题或应用场景,理论性成果很匮乏。譬如,研究截止时间的优化算法的可调度性、计算资源受限下调度算法的计算复杂度、分布式优化算法的收敛性。同时,针对简化模型的寻优算法的收敛性与鲁棒性、基于模型的问题下界,都是很有意义的理论研究内容。

    另外,面对多目标优化问题,目标均衡策略、协同优化机制、决策空间与目标空间的分解策略、层次分析等方法与技术的研究、改进均有待相应的理论分析的支撑。

    (2) 建模

    在模型层面,大规模的边缘节点、有限的计算资源、不稳定的网络连接不稳定、异构性的平台,都给问题的建模带来挑战。针对大规模和异构等特点,可建立分布式模型;针对网络、计算资源、物联网应用的不稳定特性,可建立不确定模型;针对需求的实时性和动态性,可建立动态和重调度模型,进而设计相应的方法获得可行、有效、鲁棒的调度方案,保证满意的实时性、可扩展性、鲁棒性等。

    (3) 方法

    在方法层面,要同时注重基于数学模型和数据驱动的优化调度策略、算法研究。尽管精确求解方法因寻优效率低而不适用于大规模边缘计算节点与物联网应用,但问题的可调度性研究有理论意义。尽管启发式与贪婪搜索方法难以取得全局性能,但适用于对优化质量要求不高的实时边缘计算场景。智能算法是进一步研究的重点,但必须结合实际应用的需求兼顾计算效率和优化质量。

    考虑到边缘计算环境的实时性与动态性、计算资源的有限性、缺少获取所有边缘节点状态的主节点等情况,分布式优化方法的研究值得关注与发展。另外,随着人工智能技术的发展,将优化方法与深度学习、强化学习等有机结合,利用已有调度案例数据实现模型的线下训练,进而再开展线上优化与决策,是当前研究的热点方向。

    (4) 验证

    理论分析、性能对比、仿真验证,都是调度优化算法验证层面可开展的工作。譬如,利用排队模型或状态转移模型建立边缘计算节点任务处理状态的模型并开展性能分析,利用Petri网模型评估系统的性能和可靠性,利用数学规划模型获得性能的界作为寻优算法的对比基准。

    另外,搭建原型系统验证所提算法的可用性、有效性、高效性,是实际应用的必要前提,尤其是智能战场等复杂应用对边缘计算侧仿真提出了很高的实际需求[70]。只有通过面向实际系统的验证,才能为算法的可行性、有效性、稳定性提供充分说服力的依据。

    (5) 推广与应用

    边缘计算调度优化理论与方法的研究,是技术实现与应用的前提。通过实际系统的应用,一方面可验证理论与算法的有效性,另一方面可发现新的问题与需求,通过推广应用使得理论与方法的研究得到进一步完善与发展。先进理论成果在实际工业、生活场景下验证和应用,有利于加深对调度优化问题的理解,有效算法的成功应用则将促进边缘计算技术的落地与发展。

    总之,边缘计算技术方兴未艾,资源分配和任务调度作为核心问题许多研究工作亟待深入,促进理论、方法、技术与应用的发展以及相关学科的交叉融合。

    参考文献

    [1]. Pang H H, Tan K L. Authenticating Query Results in Edge Computing[C]//20th International Conference on Data Engineering. Boston, MA, USA: IEEE Comput Soc, 2004: 560-571.

    [2]. Bonomi F, Milito R, Zhu J, et al. Fog Computing and its Role in the Internet of Things[C]//1st Edition MCC Workshop Mobile Cloud Comput. NY, USA: ACM, 2012: 13-16.

    [3]. Vaquero L M, Rodero-Merino L. Finding Your Way in the Fog: Towards a Comprehensive Definition of Fog Computing[J]. ACM SIGCOMM Computer Communication Review (S0146-4833), 2014, 44(5): 27-32.

    [4]. Hu P, Dhelim S, Ning H, et al. Survey on Fog Computing: Architecture, Key Technologies, Applications and Open Issues[J]. Journal of Network and Computer Applications (S1084-8045), 2017, 98(11): 27-42.

    [5]. Yousefpour A, Fung C, Nguyen T, et al. All One Needs to Know About Fog Computing and Related Edge Computing Paradigms: A Complete Survey[J]. Journal of Systems Architecture (S1383-7621), 2019, 98(1): 289-330.

    [6]. O. C. Architecture Working Group, Open Fog Reference Architecture for Fog Computing[R]. 2017, 1(1): 162.

    [7]. Shi W, Cao J, Zhang Q, et al. Edge Computing: Vision and Challenges[J]. IEEE Internet of Things Journal (S2327-4662), 2016, 3(5): 637-646.

    [8]. Hussain H, Malik S U R, Hameed A, et al. A Survey on Resource Allocation in High Performance Distributed Computing Systems[J]. Parallel Computing (S0167-8191), 2013, 39(11): 709-736.

    [9]. Bellendorf J, Mann Z Á. Classification of Optimization Problems in Fog Computing[J]. Future Generation Computer Systems (S0167-739X), 2020, 107(1): 158-176.

    [10]. Brogi A, Forti S, Guerrero C, et al. How to Place Your Apps in the Fog: State of the Art and Open Challenges[J]. Software: Practice and Experience (S0167-739X), 2019, 1(1): 1-8.

    [11]. Wu C, Li W, Wang L, et al. Hybrid Evolutionary Scheduling for Energy-efficient Fog-enhanced Internet of Things[J]. IEEE Transactions on Cloud Computing (S2168-7161), 2018, 1(1): 1-1.

    [12]. Atzori L, Iera A, Morabito G. The Internet of Things: A Survey[J]. Computer Networks (S1389-1286), 2010, 54(15): 2787-2805.

    [13]. Bonomi F, Milito R, Natarajan P, et al. Fog Computing: A Platform for Internet of Things and Analytics. N. Bessis, C. Dobre. Big Data and Internet of Things: A roadmap for smart environments[M]. Cham: Springer, 2014, 546: 169-186.

    [14]. Mahmud R, Srirama S N, Ramamohanarao K, et al. Quality of Experience (QoE)-aware Placement of Applications in Fog Computing Environments[J]. Journal of Parallel and Distributed Computing (S0743-7315), 2019, 132(1): 190-203.

    [15]. Buyya R., Srirama S. N. 雾计算与边缘计算: 原理和范式[M]. NJ, USA: Wiley, 2019: 31-50.

    [16]. Wu H, Yue K, Hsu C, et al. Deviation-based Neighborhood Model for Context-aware QoS Prediction of Cloud and IoT Services[J]. Future Generation Computer Systems (S0167-739X), 2017, 76(1): 550-560.

    [17]. Brogi A, Forti S. QoS-Aware Deployment of IoT Applications Through the Fog[J]. IEEE Internet of Things Journal (S2327-4662), 2017, 4(5): 1185-1192.

    [18]. Yousefpour A, Ishigaki G, Gour R, et al. On Reducing IoT Service Delay Via Fog Offloading[J]. IEEE Internet of Things Journal (S2327-4662), 2018, 5(2): 998-1010.

    [19]. Merlino G, Arkoulis S, Distefano S, et al. Mobile Crowdsensing as a Service[J]. Future Generation Computer Systems (S0167-739X), 2016, 56(1): 623-639.

    [20]. Lomotey R K, Pry J, Sriramoju S. Wearable IoT Data Stream Traceability in a Distributed Health Information System[J]. Pervasive and Mobile Computing (S1574-1192), 2017, 40(1): 692-707.

    [21]. Desikan K E S, Srinivasan M, Murthy C S R. A Novel Distributed Latency-aware Data Processing in Fog Computing-enabled IoT Networks[C]//Proc. of the ACM Workshop on Distributed Information Processing in Wireless Networks. Chennai, India: ACM, 2017: 1-6.

    [22]. Gorlatova M, Inaltekin H, Chiang M. Characterizing Task Completion Latencies in Fog Computing[J].Computer Networks (S1389-1286), 2020, 181:107526.

    [23]. Abbott R K, Garcia-Molina H. Scheduling Real-time Transactions: A Performance Evaluation[J]. ACM Transactions on Database Systems (S0362-5915), 1992, 17(3): 513-560.

    [24]. Meng J, Tan H, Li X Y, et al. Online Deadline-aware Task Dispatching and Scheduling in Edge Computing[J]. IEEE Transactions on Parallel and Distributed Systems (S1045-9219), 2020, 31(6): 1270-1286.

    [25]. Ye D, Wu M, Tang S, et al. Scalable Fog Computing with Service Offloading in Bus Networks[C]//3rd International Conference on Cyber Security and Cloud Computing. Beijing, China: IEEE, 2016: 247-251.

    [26]. Verba N, Chao K M, Lewandowski J, et al. Modeling Industry 4.0 based Fog Computing Environments for Application Analysis and Deployment[J]. Future Generation Computer Systems (S0167-739X), 2019, 91(1): 48-60.

    [27]. Wu C, Wang L. A Deadline-aware Estimation of Distribution Algorithm for Resource Scheduling in Fog Computing Systems[C]//IEEE Congress on Evolutionary Computation. Wellington, New Zealand: IEEE, 2019: 660-666.

    [28]. 林闯, 胡杰, 孔祥震. 用户体验质量(QoE)的模型与评价方法综述[J]. 计算机学报, 2012, 35(1): 1-15.
        Lin Chuang, Hu Jie, Kong Xiangzhen. Survey on Models and Evaluation of Quality of Experience[J]. Chinese Journal of Computers, 2012, 35(1): 1-15.

    [29]. Lin Y, Shen H. Cloud Fog: Towards high quality of experience in cloud gaming[C]//44th International Conference on Parallel Processing. Beijing, China: IEEE, 2015: 500-509.

    [30]. Aazam M, St-Hilaire M, Lung C, et al. MeFoRE: QoE based Resource Estimation at Fog to Enhance QoS in IoT[C]//23rd International Conference on Telecommunications. Thessaloniki, Greece: IEEE, 2016: 1-5.

    [31]. Jalali F, Hinton K, Ayre R, et al. Fog Computing May Help to Save Energy in Cloud Computing[J]. IEEE Journal on Selected Areas in Communications (S0733-8716), 2016, 34(5): 1728-1739.

    [32]. Halgamuge M N, Zukerman M, Ramamohanarao K, et al. An Estimation of Sensor Energy Consumption[J]. Progress in Electromagnetics Research B (S1559-8985), 2009, 12(12): 259-295.

    [33]. Li W, Delicato F C, Zomaya A Y. Adaptive Energy-efficient Scheduling for Hierarchical Wireless Sensor Networks[J]. ACM Transactions on Sensor Networks (S1550-4859), 2013, 9(3): 1-34.

    [34]. Dietrich I, Dressler F. On the Lifetime of Wireless Sensor Networks[J]. ACM Transactions on Sensor Networks (S1550-4859), 2009, 5(1): 1-39. 

    [35]. Deng R, Lu R, Lai C, et al. Optimal Workload Allocation in Fog-cloud Computing Towards Balanced Delay and Power Consumption[J]. IEEE Internet of Things Journal (S2327-4662), 2016, 1(1): 1-1.

    [36]. Wan J, Chen B, Wang S, et al. Fog Computing for Energy-aware Load Balancing and Scheduling in Smart Factory[J]. IEEE Transactions on Industrial Informatics (S1551-3203), 2018, 14(10): 4548-4556.

    [37]. Gu L, Zeng D, Guo S, et al. Cost Efficient Resource Management in Fog Computing Supported Medical Cyber-Physical System[J]. IEEE Transactions on Emerging Topics in Computing (S2168-6750), 2017, 5(1): 108-119.

    [38]. Sturzinger E, Tornatore M, Mukherjee B. Application- aware Resource Provisioning in a Heterogeneous Internet of Things[C]//International Conference on Optical Network Design and Modeling. Budapest: IEEE, 2017: 1-6.

    [39]. Kumar K, Liu J, Lu Y H, et al. A Survey of Computation Offloading for Mobile Systems[J]. Mobile Networks and Applications (S1383-469X), 2013, 18(1): 129-140.

    [40]. Aazam M, Zeadally S, Harras K A. Offloading in Fog Computing for IoT: Review, Enabling Technologies, and Research Opportunities[J]. Future Generation Computer Systems (S0167-739X), 2018, 87(1): 278-289.

    [41]. Fricker C, Guillemin F, Robert P, et al. Analysis of an Offloading Scheme for Data Centers in the Framework of Fog Computing[J]. ACM Transactions on Modeling and Performance Evaluation of Computing Systems(S2376-3639), 2016, 1(4): 16-34.

    [42]. Wang X, Ning Z, Wang L. Offloading in Internet of Vehicles: A Fog-enabled Real-time Traffic Management System[J]. IEEE Transactions on Industrial Informatics (S1551-3203), 2018, 14(10): 4568-4578.

    [43]. Zhao X, Zhao L, Liang K. An Energy Consumption Oriented Offloading Algorithm for Fog Computing[C]//12th International Conference on Heterogeneous Networking for Quality, Reliability, Security and Robustness. Cham: Springer, 2016: 293-301.

    [44]. Xiao Y, Krunz M. QoE and Power Efficiency Tradeoff for Fog Computing Networks with Fog Node Cooperation[C]// IEEE Conference on Computer Communications. Atlanta, USA: IEEE, 2017: 1-9.

    [45]. Kattepur A, Dohare H, Mushunuri V, et al. Resource Constrained Offloading in Fog Computing[C]//1st Workshop on Middleware for Edge Clouds & Cloudlets. Trento, Italy: ACM, 2016: 1-6.

    [46]. Pisinger D. Where Are the Hard Knapsack Problems[J]. Computers & Operations Research (S1873-765X), 2005, 32(9): 2271-2284.

    [47]. Skarlat O, Nardelli M, Schulte S, et al. Towards QoS-aware Fog Service Placement[C]//1st International Conference on Fog and Edge Computing. Madrid, Spain: IEEE, 2017: 89-96.

    [48]. Zeng D, Gu L, Guo S, et al. Joint Optimization of Task Scheduling and Image Placement in Fog Computing Supported Software-Defined Embedded System[J]. IEEE Transactions on Computers (S0018-9340), 2016, 65(12): 3702-3712.

    [49]. Mennes R, Spinnewyn B, Latre S, et al. GRECO: A Distributed Genetic Algorithm for Reliable Application Placement in Hybrid Clouds[C]//5thInternational Conference on Cloud Networking. Pisa, Italy: IEEE, 2016: 14-20.

    [50]. Rahbari D, Nickray M. Scheduling of Fog Networks with Optimized Knapsack by Symbiotic Organisms Search[C]// 21stConference of Open Innovations Association. Helsinki: IEEE, 2017: 278-283.

    [51]. Tang Z, Zhou X, Zhang F, et al. Migration Modeling and Learning Algorithms for Containers in Fog Computing[J]. IEEE Transactions on Services Computing (S1939-1374), 2019, 12(5): 712-725.

    [52]. Kwok Y, Ahmad I. Static Scheduling Algorithms for Allocating Directed Task Graphs to Multiprocessors[J]. ACM Computing Surveys (S1557-7341), 1999, 31(4): 406-471.

    [53]. Kao Y, Krishnamachari B. Optimizing Mobile Computational Offloading with Delay Constraints[C]// IEEE Global Communications Conference. TX, Austin: IEEE, 2014: 2289-2294.

    [54]. Sundar S, Liang B. Offloading Dependent Tasks with Communication Delay and Deadline Constraint[C]//IEEE Conference on Computer Communications. Honolulu, HI: IEEE, 2018: 37-45.

    [55]. Mahmoodi S E, Uma R N, Subbalakshmi K P. Optimal Joint Scheduling and Cloud Offloading for Mobile Applications[J]. IEEE Transactions on Cloud Computing (S2168-7161), 2019, 7(2): 301-313.

    [56]. Selvi S, Manimegalai D. DAG Scheduling in Heterogeneous Computing and Grid Environments Using Variable Neighborhood Search Algorithm[J]. Applied Artificial Intelligence (S0883-9514), 2017, 31(2): 134-173.

    [57]. Topcuoglu H, Hariri S, Min-You Wu. Performance-effective and Low-complexity Task Scheduling for Heterogeneous Computing[J]. IEEE Transactions on Parallel & Distributed Systems (S1045-9219), 2002, 13(3): 260-274.

    [58]. Liou J, Palis M A. A Comparison of General Approaches to Multiprocessor Scheduling[C]//11th International Parallel Processing Symposium. Switzerland: IEEE, 1997: 152-156.

    [59]. Xu Y, Li K, He L, et al. A DAG Scheduling Scheme on Heterogeneous Computing Systems Using Double Molecular Structure-Based Chemical Reaction Optimization[J]. Journal of Parallel and Distributed Computing (S0743-7315), 2013, 73(9): 1306-1322.

    [60]. Pham X Q, Huh E N. Towards Task Scheduling in a Cloud-fog Computing System[C]//18th Asia-Pacific Network Operations and Management Symposium. Kanazawa, Japan: IEEE, 2016: 1-4.

    [61]. Stavrinides G L, Karatza H D. A Hybrid Approach to Scheduling Real-time IoT Workflows in Fog and Cloud Environments[J]. Multimedia Tools and Applications (S1380-7501), 2019, 78(17): 24639-24655.

    [62]. Skarlat O, Nardelli M, Schulte S, et al. Optimized IoT Service Placement in the Fog[J]. Service Oriented Computing and Applications (S1863-2386), 2017, 11(4): 427-443.

    [63]. Xie Y, Zhu Y, Wang Y, et al. A Novel Directional and Non-local-convergent Particle Swarm Optimization based Workflow Scheduling in Cloud-edge Environment[J]. Future Generation Computer Systems (S0167-739X), 2019, 97(1): 361-378.

    [64]. 赵梓铭, 刘芳, 蔡志平, 等. 边缘计算: 平台、应用与挑战[J], 计算机研究与发展, 2018, 55(2): 327-337.
        Zhao Ziming, Liu Fang, Cai Zhiping, et al. Edge Computing: Platforms, Applications and Challenges[J]. Journal of Computer Research and Development, 2018, 55(2): 327-337.

    [65]. Sonmez C, Ozgovde A, Ersoy C, et al. EdgeCloudSim: An Environment for Performance Evaluation of Edge Computing Systems[J]. Transactions on Emerging Telecommunications Technologies (S2161-3915), 2018, 29(11): 1-1.

    [66]. Gupta H, Dastjerdi A V, Ghosh S K, et al. iFogSim: A Toolkit for Modeling and Simulation of Resource Management Techniques in the Internet of Things, Edge and Fog computing environments[J]. Software - Practice and Experience (S0038-0644), 2017, 47(9): 1275-1296.

    [67]. Jonathan M, Nan W, Ashish T, et al. DeFog: fog Computing Benchmarks[C]//Proc 4th ACM/IEEE Symposium on Edge Computing. New York, USA: ACM Press, 2019: 47-58.

    [68]. Sharma S, Saini H. A Novel Four-tier Architecture for Delay Aware Scheduling and Load Balancing in Fog Environment[J]. Sustainable Computing: Informatics and Systems (S2210-5379), 2019, 1(1): 1-8.

    [69]. Xia C, Li W, Chang X, et al. Edge-based Energy Management for Smart Homes[C]//16th Dependable, Autonomic and Secure Computing. Athens, Greece: IEEE, 2018: 849-856.

    [70]. 翟岩龙, 孙文心, 包天虹, 等. 基于微服务的边缘侧仿真方法及框架研究[J]. 系统仿真学报, 2018, 30(12): 44-53.
        Zhai Yanlong, Sun Wenxin, Bao Tianhong, et al. Edge-side Simulation Method and Framework Based on Micro-services[J]. Journal of System Simulation, 2018, 30(12): 44-53.

    作者简介:

    9e2a209f9880961bbb01dbd96e0bffb4.png

    王凌 清华大学自动化系长聘教授、博士生导师、学位委员会副主席,国家杰出青年科学基金获得者。中国仿真学会理事,中国仿真学会智能仿真优化与调度专委会副主任;中国人工智能学会自然计算与数字智能城市专委会副主任;国际期刊IJAAC主编、CSMS执行主编;IEEE TEVC、SEC、ESWA等SCI期刊副主编;控制理论与应用、控制与决策、系统工程与电子技术等期刊编委。 

    长期从事复杂系统建模控制与优化调度的研究与应用,主持国家杰出青年科学基金及面上项目、国家重点研发计划课题等20余项;已出版专著5部、译著1部,在IEEE Trans等刊物上发表SCI论文200余篇、WOS引用一万余次、Google Scholar引用两万余次;获国家自然科学二等奖1项;省部级科技奖励6项;自动化学报、控制理论与应用、控制与决策等期刊优秀论文奖。获国家杰出青年科学基金、北京市科技新星、教育部新世纪优秀人才、清华大学学术新人奖、中国自动化学会青年科学家奖、中国高被引作者等。 

    DOI:10.16182/j.issn1004731x.joss.20-0584

    第一作者:王凌(1972-),男,博士,教授,研究方向为智能优化调度理论与方法等。E-mail:wangling@mail.tsinghua.edu.cn

    基金信息: 国家杰出青年基金(61525304),国家自然科学基金(61873328)

    中图分类号: TP391

    文章编号:1004-731X(2021)03-0509-12

    文献标识码: A

    收稿日期:2020-08-10

    修回日期:2020-09-03

    网刊发布日期:2021-11-22

    3ee0c20d20e3ddb67c475b7ca66ca5cc.gif

    边缘计算社区:促进边缘计算领域知识传播,中立,客观,如果您关注边缘计算、5G、物联网、云原生等领域请关注我们。

    24920b0cb4e27155c46b2501525852c2.gif

    展开全文
  • 数学建模之优化模型详解

    千次阅读 多人点赞 2022-03-09 21:51:29
    全文共8090个字,码字总结不易,老铁们来...企业推出新产品要综合考虑成本与市场吸引力,对资金进行优化配置,等等。 这些问题都是“最优化问题”,也是数学建模中的典型问题,解决最优化问题的数学方法就是“最优化..

    全文共8090个字,码字总结不易,老铁们来个三连:点赞、关注、评论
    作者:[左手の明天]
     原创不易,转载请联系作者并注明出处
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    “优化”是生活中经常使用的词:坐出租车时希望司机不绕弯路、走优化路线;逛超市时考虑各种优惠活动,希望获得最大优惠;企业推出新产品要综合考虑成本与市场吸引力,对资金进行优化配置,等等。 这些问题都是“最优化问题”,也是数学建模中的典型问题,解决最优化问题的数学方法就是“最优化方法”。

    最优化方法的出发点是系统思维,最优化方法的基本思路是在一定的约束条件下,保证各方面资源的合理分配, 最大限度地提升系统某一性能或系统整体性能,最终实现最理想结果。运用最优化方法建立并求解数学模型,主要包括以下步骤:

    (1)明确目标,分析问题背景,确定约束条件,搜集全面的客观数据和信息;
    (2)建立数学模型,构建变量之间的数学关系,设立目标函数;
    (3)分析数学模型,综合选择最适合该模型的优化方法;
    (4)求解模型,通常借助计算机和数学分析软件完成;
    (5)对最优解进行检验和实施。

    目录

    数学规划的一般模型

    MATLAB 求解优化问题的主要函数

    模型及基本函数

    优化函数的输入变量

    优化函数的输出变量

    无约束最优化问题

    数学描述

    解析解法和图解法

    数值解法

    全局最优解和局部最优解

    带约束最优化问题

    线性规划问题

    情况一

    情况二

    二次规划问题

    非线性规划问题

    定义

    求解算法1:间接法

    求解算法2:直接法

    求解算法3:最速下降法(steepest descent method)

    Matlab求解步骤

    示例

    0-1规划问题

    钢管的订购与运输问题

    问题

    问题1的基本模型和解法

    总费用最小的优化问题

    基本模型:二次规划

    Floyd算法求解步骤 

    最优化方法在数学建模中的应用 

    梯度下降法

    惩罚函数法

    遗传算法

    蚁群算法


    数学规划的一般模型

    其中,x~决策变量;f(x)~目标函数;gi(x)≤0~约束条件


    MATLAB 求解优化问题的主要函数

    模型及基本函数

    优化函数的输入变量

    优化函数的输出变量


    无约束最优化问题

    数学描述

    解析解法和图解法

     举例:用解析和图解法求解下列方程

    <<syms t; 
    y=exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5;
    ezplot(y,[0 4])
    y1=diff(y);
    ezplot(y1,[0 4])
    t0=solve(y1)
    y2=diff(y1);
    b=subs(y2,t,t0)

    数值解法

     命令形式1:

    x=fminsearch(fun,x0)   %简单形式
    
    [x,f,flag,out]=fminsearch(fun,x0,opt,p1,p2,…) %一般形式

    功能:与fsolve()中的参数控制形式类似。

    注:若函数时多元的,要表达成向量的形式。

    命令形式2:

    x=fminunc(fun,x0)   %简单形式
    
    [x,f,flag,out]=fminunc(fun,x0,opt,p1,p2,…) %一般形式

    功能:与fsolve()中的参数控制形式类似。

    举例:

    >>f=inline('(x(1)^2-2*x(1))*exp(-x(1)^2-x(2)^2-x(1)*x(2))','x');
    x0=[0,0];
    ff=optimset;ff.Display='iter';
    x=fminsearch(f,x0,ff)
    
    >>x=fminunc(f,x0,ff)
    

    全局最优解和局部最优解

    一元函数极小

    X=fminbnd(fun,x1,x2)

    多元无约束极小

    X=fminunc(fun,x0) (牛顿法)
    X=fminsearch(fun,x0)

    举例1:(初值的影响力)设目标函数为

     试观察不同的初值得出的最小值。

    >> f=inline('exp(-2*t)*cos(10*t)+exp(-3*(t+2))*sin(2*t)','t');
    t0=1;[t1,f1]=fminsearch(f,t0)
    
    t1=0.92275390625000,f1=-0.15473299821860
    
    >> t0=0.1;[t2,f2]=fminsearch(f,t0)
    
    t2=0.29445312500000,f2=-0.54362463738706
    
    
    >> syms t; 
    y=exp(-2*t)*cos(10*t)+exp(-3*(t+2))*sin(2*t);
    ezplot(y,[0,2.5]); axis([0 2.5 -0.6 1])

    举例2:对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?

    建立模型: 

    设剪去的正方形的边长为x,,则水槽的容积为:

    建立无约束优化模型为:

    模型求解:

    先编写M文件如下:

    function f=myfun(x)
    f=-(3-2*x).^2*x;

    调用fminbnd:

    [x,fval]=fminbnd(@myfun,0,1.5)

    运算结果为:

    x = 0.5000,fyal =2.0000.

    即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米。


    带约束最优化问题

    线性规划问题

    目标函数:

     约束条件:

    情况一

    目标函数:

    其中,C为价值向量

    约束条件:

     其中,b为资源向量;X为决策变量向量

    其中:

     

    命令形式1:

    [X,lag,how]=lp(C,A,b,v1,v2,x0)

    功能:

    • C,A,b的意义如矩阵表示里参数;
    • v1,v2表示决策变量的上界和下界(其维数可以小于X,但表示前几个分量的上下界);
    • x0表示初始值;X时输出最优解;
    • lag是lagrange乘子,维数等于约束条件的个数,非零的向量是起作用的约束条件;
    • how给出错误信息:infeasible(无可行解),unbounded(无界解),ok(求解成功).

     举例:

    >> c=[13,-1,5];
    A=[-1,-1,0;0,1,1];
    b=[-7,10];
    v0=[2,0,0];
    [X,lag,how]=lp(c,A,b,v0)
    

    情况二

    目标函数:

     约束条件:

    命令形式2:  

    [X,f,flag,c]=linprog(C,A,b,Aeq,Beq,xm,xM,x0,opt)

    功能:各个参数的解释如前,若各个约束条件不存在,则用空矩阵来代替。

    • x: 解
    • f: 最优值
    • flag:大于零表示求解成功,否则求解出问题
    • c:求解信息
    • x0:搜索点的初值
    • opt:最优化控制项

    举例1:

    >> c=[-2,-1,-4,-3,-1];
     A=[0 2 1 4 2;3 4 5 -1 -1];
     b=[54,62];
     Ae=[];Be=[];
     xm=[0,0,3.32,0.678,2.57];
     ff=optimset;
     ff.LargeScale='off';
     ff.TolX=1e-15;
     ff.Display='iter';
     [X,f,flag,c]=linprog(c,A,b,Ae,Be,xm,[],[],ff)
    

    举例2:某车间生产A和B两种产品,为了生产A和B,所需的原料分别为2个和3个单位,所需的工时分别为4个和2个单位。现在可以应用的原料为100个单位,工时为120个单位。每生产一台A和B分别可获得利润6元和4元。应当生产A和B各多少台能获得最大利润?

    分析:

     模型建立:

    设生产A产品x1 台,生产B产品 x2台

     模型求解:

    f=[-6,-4]';
    A=[2 3;4 2];
    B=[100;120];
    Ae=[];
    Be=[];
    xm=[0,0];
    ff=optimset;
    ff.LargeScale='off'; % 不用大规模问题求解
    ff.TolX=1e-15;
    ff.TolFun=1e-20; 
    ff.TolCon=1e-20;
    ff.Display='iter';
    [x,f_opt,key,c]=linprog(f,A,B,Ae,Be,xm,[],[],ff)

    举例3:(任务分配问题)某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为 800 和 900,三种工件的数量分别为 400、600 和 500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?

    模型建立:

    设在甲车床上加工工件 1、2、3 的数量分别为 x1、x2、x3,在乙车床上加工工件 1、2、3 的数量分别为 x4、x5、x6。可建立以下线性规划模型:

    模型求解:

    f = [13 9 10 11 12 8];
    A = [0.4 1.1 1 0 0 0
    0 0 0 0.5 1.2 1.3];b = [800; 900];
    Aeq=[1 0 0 1 0 0
    0 1 0 0 1 0
    0 0 1 0 0 1];
    beq=[400 600 500];
    vlb = zeros(6,1);
    vub=[];
    [x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)

    举例4:某厂每日 8 小时的产量不低于 1800 件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度 25 件/小时,正确率 98%,计时工资 4 元/小时;二级检验员的标准为:速度 15 小时/件,正确率 95%,计时工资 3 元/小时。检验员每错检一次,工厂要损失 2 元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?

    模型建立:

    设需要一级和二级检验员的人数分别为 x1、x2 人,则应付检验员的工资为:

     因检验员错检而造成的损失为:

    故目标函数为:

    约束条件为:

     

     线性规划模型:

     

     模型求解:

    c = [40;36];
    A=[-5 -3];
    b=[-45];
    Aeq=[];
    beq=[];
    vlb = zeros(2,1);
    vub=[9;15];
    %调用 linprog 函数:
    [x,fval] = linprog(c,A,b,Aeq,beq,vlb,vub)

    结果:

    x =
    9.0000
    0.0000
    fval =360

    即只需聘用 9 个一级检验员。

    二次规划问题

    目标函数:

    约束条件: 

    命令形式:

     [X,f,flag,c]=quadprog(H,C,A,b,Aeq,Beq,xm,xM,x0,opt)

    功能:

    各个参数的解释如前,若各个约束条件不存在,则用空矩阵来代替。

    举例:

     

    >> c=[-2,-1,-4,-3,-1];
      A=[0 2 1 4 2;3 4 5 -1 -1];
      b=[54,62];
      Ae=[];Be=[];
      xm=[0,0,3.32,0.678,2.57];
      ff=optimset;
      ff.LargeScale='off';
      ff.TolX=1e-15;
      ff.Display='iter';
      [X,f,flag,c]=linprog(c,A,b,Ae,Be,xm,[],[],ff)
    

    非线性规划问题

    定义

    如果目标函数或约束条件中至少有一个是非线性函数时的最优化问题就叫做非线性规划问题.

    一般形式:

     其中

     

     是定义在 En 上的实值函数,简记:

     

    其它情况:

    求目标函数的最大值或约束条件为小于等于零的情况,都可通过取其相反数化为上述一般形式.

     

    其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成的向量,其它变量的含义与线性规划、二次规划中相同.

    求解算法1:间接法

    在非线性最优化问题当中,如果目标函数能以解析函数表示,可行域由不等式约束确定,则可以利用目标函数和可行域的已知性质,在理论上推导出目标函数为最优值的必要条件,这种方法就称为间接法(也称为解析法) 。 一般要用到目标函数的导数。

    求解算法2:直接法

    直接法是一种数值方法。这种方法的基本思想是迭代,通过迭代产生一个点序列{ X(k) },使之逐步接近最优点。 只用到目标函数。 如黄金分割法、Fibonacci、随机搜索法。

    迭代法一般步骤

     注意:数值求解最优化问题的计算效率取决于确定搜索方向P (k)和步长的效率。

    求解算法3:最速下降法(steepest descent method)

    由法国数学家Cauchy于1847年首先提出。在每次迭代中,沿最速下降方向(负梯度方向)进行搜索,每步沿负梯度方向取最优步长,因此这种方法称为最优梯度法。

    特点:

    方法简单,只以一阶梯度的信息确定下一步的搜索方向,收敛速度慢; 越是接近极值点,收敛越慢; 它是其它许多无约束、有约束最优化方法的基础。 该法一般用于最优化开始的几步搜索。

    最速下降法算法:

    Matlab求解步骤

    用Matlab求解上述问题,基本步骤分三步:

    1. 首先建立M文件fun.m,定义目标函数F(X):

    function f=fun(X); 
    f=F(X);

     3. 建立主程序.非线性规划求解的函数是fmincon,命令的基本格式如下:       

    (1) x=fmincon(‘fun’,X0,A,b)    
    
    (2) x=fmincon(‘fun’,X0,A,b,Aeq,beq)    
    
    (3) x=fmincon(‘fun’,X0,A,b, Aeq,beq,VLB,VUB)          
    
    (4) x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’)
    
    (5) x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’,options)
    
    (6) [x,fval]= fmincon(...)
    
    (7) [x,fval,exitflag]= fmincon(...)  
    
    (8) [x,fval,exitflag,output]= fmincon(...)

    输入参数的几点说明:

    模型中如果没有A,b,Aeq,beq,VLB,VUB的限制,则以空矩阵[ ]作为参数传入;

    nonlcon:如果包含非线性等式或不等式约束,则将这些函数编写一个Matlab函数

    nonlcon就是定义这些函数的程序文件名;

    不等式约束  G(x)<=0

    等式约束     Ceq(x)=0.

    如果nonlcon=‘mycon’ ; 则myfun.m定义如下

    function [G,Ceq] = mycon(x)
    
    G= ... % 计算非线性不等式约束在点x处的函数值
    
    Ceq= ... %计算机非线性等式约束在点x处的函数值 

    示例

    例子1:

    2个不等式约束, 2个等式约束 3个决策变量x1,x2,x3 如果nonlcon以‘test’作为参数值,则程序test.m如下

    function [G,Ceq]=test(x)
    G(1)=x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-100
    G(2)=60-x(1)*x(1)+10*x(3)*x(3)
    Ceq(1)=x(1)+x(2)*x(2)+x(3)- 80
    Ceq(2)=x(1)^3+x(2)*x(2)+x(3)- 80
    

    注意:

    [1] fmincon函数提供了大型优化算法和中型优化算法。默认时,若在fun函数中提供了梯度(options参数的GradObj设置为’on’),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。

    [2] fmincon函数可能会给出局部最优解,这与初值X0的选取有关。

    例子2:

     1.先建立M文件 fun.m,定义目标函数:

    function f=fun(x);
    
    f=exp(x(1)) *(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);

     2.再建立M文件mycon.m定义非线性约束:

    function [g,ceq]=mycon(x)
    
    g=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];
    
    ceq=[];

    3.主程序为:

    x0=[-1;1];
    A=[];b=[];
    Aeq=[1 1];
    beq=0; 
    vlb=[];
    vub=[];
    [x,fval]=fmincon('fun4',x0,A,b,Aeq,beq,vlb,vub,'mycon')

    4.运算结果为:

    x = -1.2250    1.2250        
    
    fval = 1.8951

    0-1规划问题

    数学描述:自变量的取值只能为0或1

    matlab解:

    X=bintprog(f,A,B,Aeq,Beq)

    小规模问题可以穷举

    举例:求解下面的0-1线性规划问题

     

    f=[-3,2,-5]; A=[1 2 -1; 1 4 1; 1 1 0; 0 4 1]; 
    B=[2;4;5;6];
    x=bintprog(f,A,B,[],[])'

    钢管的订购与运输问题

    要铺设一条A1→A2 →……→ A15的输送天然气的主管道,如图一所示(见下页)。经筛选后可以生产这种主管道钢管的钢厂有 。图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。

    为方便计,1km主管道钢管称为1单位钢管。一个钢厂如果承担制造这种钢管,至少需要生产
    500个单位。钢厂Si在指定期限内能生产该钢管的最大数量为Si个单位,钢管出厂销价1单位钢管为pi万元,如下表:

     1单位钢管的铁路运价如下表:

     

    1000km以上每增加1至100km运价增加5万元。公路运输费用为1单位钢管每公里0.1万元(不足
    整公里部分按整公里计算)。钢管可由铁路、公路运往铺设地点(不只是运到点A1,A2,……,A15 ,而是管道全线)。

    问题

    (1)制定钢管的订购和运输计划,使总费用最小.
    (2)分析对购运计划和总费用影响:哪个钢厂钢管销价的变化影响最大;哪个钢厂钢管产量上限的变化影响最大?
    (3)讨论管道为树形图的情形

    问题1的基本模型和解法

    总费用最小的优化问题

     

    基本模型:二次规划

    Floyd算法求解步骤 

     Floyd算法过程描述如下:

    • 1、 首先S以边集M初始化,得到所有的直接连通代价;
    • 2、 依次考虑第k个结点,对于S中的每一个S[i][j],判断是否满足:S[i][j]>S[i][k]+S[k][j],如果满足则用S[i][k]+S[k][j]代替S[i][j],此为第k步;
    • 3、 k循环取遍所有结点,算法结束时,S为最终解。

     


    最优化方法在数学建模中的应用 

    梯度下降法

    梯度下降法是经典的最优化方法之一[4],其核心思想是高等数学中的导数理论。 梯度下降法实现最优化的原理是,每次迭代更新目标函数时,都以该变量导数(即梯度)的反方向作为更新参数的方向,最终解一定会收敛于最优解。 这个原理类似于走下坡路时,总是沿着最陡峭的方向向下走,最后就一定会走到坡底。梯度下降法的实现简单, 但是求解计算时间长,因此基于梯度下降法发展了很多改进算法,包括随机梯度下降法、小批量梯度下降法等,能够有效改善计算成本高的问题。

    惩罚函数法

    惩罚函数法,指的是引入惩罚因子和惩罚函数的最优化方法[5]。 具体来说,惩罚函数的思想是:将最优化问题中的约束条件视为围墙,而迭代更新的解视为在围墙内运动的粒子,一旦粒子靠近围墙,对应的惩罚因子数值就会增大,导致惩罚函数值增大,反之,粒子远离围墙时,惩罚函数值就减小。 建立了这种惩罚机制后,在每次迭代过程中,模型为了“避免被惩罚”,逐渐趋近于约束边界,从而找到了最优解。惩罚函数法对模型的训练虽然“简单粗暴”,但是原理直观、实现门槛低,是实际工程中备受青睐的最
    优化方法。

    遗传算法

    不同于梯度下降法和惩罚函数法,遗传算法并非依据导数理论提出的算法[6],而是一种模拟生物在自然届中进化规律的一种智能算法。 自然界的生物进化遵循适者生存和优胜劣汰,即能够适应环境变化或基因变异的个体才能够参与到进化。 遗传算法的优化原理与之类似:每一次迭代时,通过计算各个个体的适应度,从中随机地选择两个个体作为父母,繁殖后代,同时诱发子代的染色体变异,重复迭代,当出现最大适应度的子代时,即认为获得了最优解,循环结束。与梯度下降法、惩罚函数法相比,遗传算法以生物进化为原型,收敛性较好,在计算精度要求时,具有计算时间少、鲁棒性高的优势。

    蚁群算法

    与遗传算法类似,蚁群算法也是受启发于生物的一种最优化方法[7]。 生物科学家发现蚂蚁经过的路上都会有一种特殊物质,并且蚁群中的蚂蚁对该物质高度敏感,由于该物质浓度越高,代表着路途长度越短,想要走“捷径”的蚁群们都会选择浓度较高的道路行走,“捷径”经过的蚂蚁越多,特殊物质的浓度就越高,物质浓度积累到一定程度,所有蚂蚁都会被吸引到最佳捷径上来,都能以最快速度找到食物了。 蚁群算法解决最优化问题,就是利用了其分布计算和信息正反馈的特点。

    展开全文
  • 之前有整理过一部分知识点, 一直没有发布, 因为都是有关 CSS 方面的零散内容; 现在想想无论做什么都... 资源的合并与压缩涉及到的优化点: 1. 减少 http 请求数量 。 2. 减小请求资源的大小 。 2. google 首页案例
  • MySQL优化配置之query_cache_size

    万次阅读 多人点赞 2017-12-28 17:27:41
    当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行阶段。  查询缓存会跟踪查询中涉及的每个表,如果这写表发生变化,那么和这个表相关的所有缓存都将失效。  但是随着服务器功能的强大,查询缓存也可能...
  • iptables高性能前端优化-无压力配置1w+条规则

    万次阅读 多人点赞 2017-08-27 20:36:19
    在我终于完成了这篇冗长的文章后,我顺势google了一下关于iptables优化的一些枝枝蔓蔓,希望能找到一些好玩的东西,如果能找到,那简直是比吃一顿大餐还要更爽的,加上外面狂风暴雨,舒坦地难以言表。   我还是...
  • 为切实提高现实中信息传输网络的资源利用率,通过分析智能电网环境下弹性...所提算法可优化利用空闲频谱资源,保障配电网海量数据传输的需要,同时可提高配电通信系统的可靠性,对智能电网的安全可靠运行具有重要意义
  • 网站优化—IIS与web.config配置优化

    千次阅读 2018-01-19 15:57:38
    网站优化——IIS与web.config配置优化 最近工作中需要做一个网站的优化工作,总结了几天,与大家分享下。优化思路无非就是前端优化,asp.net页面生命周期优化,数据访问优化,IIS与web.config配置优化,为了...
  • 超参数优化

    千次阅读 2021-07-02 21:58:57
    超参数优化,应该是所有机器学习模型都必须要经历的一个过程。很早以前训练模型,比如分类,认为精度达到90%或者自己觉得足够的精度就已经OK,但这其实是远远不够的。在Kaggle比赛中,寻找好的特征是一方面,有最佳...
  • 今天,以“成为优秀的程序员”为目标的拭心将和大家一起精益求精,学习使用 Lint 优化我们的代码。什么是 LintLint 是Android Studio 提供的 代码扫描分析工具,它可以帮助我们发现代码结构/质量问题,同时提供一些...
  • 性能优化之三——包体积优化大战

    千次阅读 2022-03-12 11:12:43
    优化意义2.分析工具1.APK Analys2.重要参数诠释3.编包流程4.优化战法1.常规战法1.清理无用资源1.Lint工具2.开启shrinkResources去除无用资源3.删除无用的语言资源4.清理第三方库中冗余代码2.图片资源优化(减)1.只...
  • 第3~6章从物理数据库部署、数据库访问设置、硬件资源设定、存储空间和内存资源的使用、实例配置与缓存优化等多方面讲解了数据库系统在部署阶段的性能优化问题;第7章探讨了如何平衡数据库可靠性和性能之间的矛盾;第...
  • mysql性能优化配置优化

    千次阅读 2016-11-16 17:20:34
    通过根据服务器目前状况,修改MySQL的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能。   2、服务器参数: 32G内存、4个CPU,每个CPU 8核。 3、MySQL目前安装状况。  MySQL目前...
  • nginx的配置优化

    千次阅读 2017-04-14 09:31:47
    优化nginx的配置,做到合理高效的使用,让程序的跑的足够快,支持足够多的并发:目标: 1.尽量提高但台机器的处理效率 2.尽量减少单台机器的负载 3.尽量减少磁盘的i/o 4.尽量减少网络的i/o 5.尽量减少内存的...
  • 如何配置我们的JVM呢,首先我们需要知道JVM的参数有哪些,然后根据这些参数的意义去分析自己的程序的JVM需要的配置。可以事先做一些尝试,再逐步调优,这个调优也是一个过程,没有足够的经验而做到一步到位是一件很...
  • 常见配置5.1 CPU资源5.2 内存资源 1. 数据类型优化 1.1 时间字段的类型   建表时能用数值型或日期时间型表示的字段就不要用字符串,全 String 类型在以 Hive 为中心的数仓建设中常见,但 ClickHouse 环境不应受此...
  • centos中apache的优化配置

    千次阅读 2017-01-05 15:43:09
    较低的内存与CPU数能节省很大一笔建站成本,但低配置的服务器如果不精心的配置,会让服务器资源紧张,上涨的访问量会迅速使服务器资源枯竭。本教程以centos为例介绍小内存Linux服务器在lamp环境下的优化方法,给各位...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,835
精华内容 48,734
关键字:

优化资源配置的意义