CN106293943A - 一种虚拟资源分配方法 - Google Patents

一种虚拟资源分配方法 Download PDF

Info

Publication number
CN106293943A
CN106293943A CN201610655081.8A CN201610655081A CN106293943A CN 106293943 A CN106293943 A CN 106293943A CN 201610655081 A CN201610655081 A CN 201610655081A CN 106293943 A CN106293943 A CN 106293943A
Authority
CN
China
Prior art keywords
resource
user
virtual resource
memory
resource allocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610655081.8A
Other languages
English (en)
Inventor
沈忠立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201610655081.8A priority Critical patent/CN106293943A/zh
Publication of CN106293943A publication Critical patent/CN106293943A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种虚拟资源分配方法,所述方法对虚拟资源的分配采用按需分配,在系统初始化时不会为所有用户分配足够资源,而是在创建用户或者系统在访问该部分资源时,先检测该内存,检测与该内存相关联的映射文件是否存在,如果存在则继续访问,反之,为该用户申请空间资源并做初始化,然后再进行资源相关操作。本发明方法具有有效提高资源利用率,访问速度快,同时避免了内存泄漏的特点。

Description

一种虚拟资源分配方法
技术领域
本发明涉及系统资源分配技术领域,具体涉及一种虚拟资源分配方法。
背景技术
系统管理员主要分为网络系统管理员和信息系统管理员。网络系统管理员主要负责整个网络的网络设备和服务器系统的设计、安装、配置、管理和维护工作,为内部网的安全运行做技术保障。服务器是网络应用系统的核心,由系统管理员专门负责管理;信息系统管理员则负责具体信息系统日常管理和维护,具有信息系统的最高管理权限。
一般系统管理员在分配用户资源时会采取集中分配、分段回收的方式,故在系统初始化时,会集中申请并初始化大量内存,造成系统启动速度过慢。此种分配方式优点是资源集中分配初始化,易于管理。缺点是一次性过多占用系统内存,资源利用率不高,增加了系统负担。
在C语言中,内存管理的问题一直是开发人员最头疼的问题。对于小型程序而言,少许的内存问题,比如内存泄露可能还能忍受,但是对于Apache这种大负载量的服务器而言,内存的问题变得尤其重要,因为丝毫的内存泄露以及频繁的内存分配都可能导致服务器的效率下降甚至崩溃。
通常情况下,内存的分配和释放通常都是mallloc和free显式进行的。这样做显得单调无味,同时也可能充满各种令人厌恶的问题。对同一块内存的多次释放通常会导致页面错误,而一直不释放又导致内存泄露,并且使得服务器性能大大下降。
为了在大而且复杂的Apache中避免内在的内存管理问题,Apache的开发者创建了一套基于池概念的内存管理方案,最后这套方法移到APR中成为通用的内存管理方案。
在这套方案中,核心概念是池的概念。Apache中的内存分配的基本结构都是资源池,包括线程池,套接字池等等。内存池通常是一块很大的内存空间,一次性被分配成功,然后需要的时候直接去池中取,而不需要重新分配,这样避免的频繁的malloc操作,而且另一方面,即时内存的使用者忘记释放内存或者根本就不想分配,那么这些内存也不会丢失,它们仍然保存在内存池中,当内存池被销毁的时候这些内存将自动的被销毁。
由于Apache中的大部分资源的分配都是从内存池中分配的,因此对于大部分的Apache函数,如果其内部需要进行资源分配,那么它的函数参数中总是会带有一个内存池参数,该内存池参数指明分配内存来自的内存池。
用于Linux进程通信共享内存。共享内存函数由shmget、shmat、shmdt、shmctl四个函数组成。shmget得到一个共享内存标识符或创建一个共享内存对象,shmat把共享内存区对象映射到调用进程的地址空间。
发明内容
本发明要解决的技术问题是:本发明针对以上问题,提供一种虚拟资源分配方法,以共享内存为基础的新的虚拟资源分配方式,它具有充分利用有效空间,按需分配的优点。
本发明所采用的技术方案为:
一种虚拟资源分配方法,所述方法对虚拟资源的分配采用按需分配,在系统初始化时不会为所有用户分配足够资源,而是在创建用户或者系统在访问该部分资源时,先检测该内存,检测与该内存相关联的映射文件是否存在,如果存在则继续访问,反之,为该用户申请空间资源并做初始化,然后再进行资源相关操作。
系统管理员通过所述方法隔离各个用户,使各用户成为相互独立个体。
所述方法采用apache内存池技术实现,实现过程如下:
内存初始化;
添加用户节点;
访问资源前检测共享内存映射文件存在与否,如存在则进行相应处理;
反之,则通过shmget函数获取共享内存标识符即映射文件;
然后通过shmat函数调用进程地址空间并做资源的初始化处理;
最后再进行资源的读写操作。
本发明的有益效果为:
本发明方法具有有效提高资源利用率,访问速度快,同时避免了内存泄漏的特点。
附图说明
图1为本发明方法流程图。
具体实施方式
下面结合附图,根据具体实施方式对本发明进一步说明:
实施例1:
一种虚拟资源分配方法,所述方法对虚拟资源的分配采用按需分配,在系统初始化时不会为所有用户分配足够资源,而是在创建用户或者系统在访问该部分资源时,先检测该内存,检测与该内存相关联的映射文件是否存在,如果存在则继续访问,反之,为该用户申请空间资源并做初始化,然后再进行资源相关操作。
实施例2
在实施例1的基础上,本实施例系统管理员通过所述方法隔离各个用户,使各用户成为相互独立个体。
实施例3
如图1所示,在实施例1或2的基础上,本实施例所述方法采用apache内存池技术实现,实现过程如下:
内存初始化;
添加用户节点;
访问资源前检测共享内存映射文件存在与否,如存在则进行相应处理;
反之,则通过shmget函数获取共享内存标识符即映射文件;
然后通过shmat函数调用进程地址空间并做资源的初始化处理;
最后再进行资源的读写操作。
实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (3)

1.一种虚拟资源分配方法,其特征在于,所述方法对虚拟资源的分配采用按需分配,在系统初始化时不会为所有用户分配足够资源,而是在创建用户或者系统在访问该部分资源时,先检测该内存,检测与该内存相关联的映射文件是否存在,如果存在则继续访问,反之,为该用户申请空间资源并做初始化,然后再进行资源相关操作。
2.根据权利要求1所述的一种虚拟资源分配方法,其特征在于,所述方法将各个用户隔离,使各用户成为相互独立个体。
3.根据权利要求1或2所述的一种虚拟资源分配方法,其特征在于,所述方法采用apache内存池技术实现,实现过程如下:
内存初始化;
添加用户节点;
访问资源前检测共享内存映射文件存在与否,如存在则进行相应处理;
反之,则通过shmget函数获取共享内存标识符即映射文件;
然后通过shmat函数调用进程地址空间并做资源的初始化处理;
最后再进行资源的读写操作。
CN201610655081.8A 2016-08-11 2016-08-11 一种虚拟资源分配方法 Pending CN106293943A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610655081.8A CN106293943A (zh) 2016-08-11 2016-08-11 一种虚拟资源分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610655081.8A CN106293943A (zh) 2016-08-11 2016-08-11 一种虚拟资源分配方法

Publications (1)

Publication Number Publication Date
CN106293943A true CN106293943A (zh) 2017-01-04

Family

ID=57669687

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610655081.8A Pending CN106293943A (zh) 2016-08-11 2016-08-11 一种虚拟资源分配方法

Country Status (1)

Country Link
CN (1) CN106293943A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110163731A (zh) * 2019-04-30 2019-08-23 广州市中智软件开发有限公司 中介服务超市的虚拟竞价室的建立方法、系统及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138704A1 (en) * 1998-12-15 2002-09-26 Stephen W. Hiser Method and apparatus fault tolerant shared memory
CN102253855A (zh) * 2011-06-17 2011-11-23 北京书生国际信息技术有限公司 一种传递共享内存的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138704A1 (en) * 1998-12-15 2002-09-26 Stephen W. Hiser Method and apparatus fault tolerant shared memory
CN102253855A (zh) * 2011-06-17 2011-11-23 北京书生国际信息技术有限公司 一种传递共享内存的方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LINUX系列教材编写组: "《Linux操作系统分析与实践》", 30 November 2008, 清华大学出版社 *
百度文库: "Apache内存池内幕", 《HTTPS://WENKU.BAIDU.COM/VIEW/809602D276A20029BD642D12.HTML》 *
鲍居武等: "《Informix高级编程指南》", 31 October 2000, 清华大学出版社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110163731A (zh) * 2019-04-30 2019-08-23 广州市中智软件开发有限公司 中介服务超市的虚拟竞价室的建立方法、系统及存储介质
CN110163731B (zh) * 2019-04-30 2021-07-27 广州市中智软件开发有限公司 中介服务超市的虚拟竞价室的建立方法、系统及存储介质

Similar Documents

Publication Publication Date Title
JP5510556B2 (ja) 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム
CN106385329B (zh) 资源池的处理方法、装置和设备
CN104508634B (zh) 虚拟机的动态资源分配
US9507540B1 (en) Secure virtual machine memory allocation management via memory usage trust groups
US20110167421A1 (en) Dynamic Scaling of Management Infrastructure in Virtual Environments
CN113504954B (zh) 调用CSI LVM Plugin插件、动态持久卷供应的方法、系统及介质
US20150286492A1 (en) Optimized resource allocation and management in a virtualized computing environment
WO2021057489A1 (zh) 虚拟机内存管理的方法及设备
US20150363238A1 (en) Resource management in a virtualized computing environment
CN103577345A (zh) 提高由多个系统共享的存储高速缓存灵活性的方法和结构
CN101799773A (zh) 并行计算的内存访问方法
CN110633130B (zh) 一种基于内存热插拔技术的虚拟内存管理方法和装置
CN102520887A (zh) 一种应用于云计算的存储空间配置与管理方法
CN105573907B (zh) 用于在解聚的硬件组件上安装软件的方法和系统
CN108287733A (zh) 一种虚拟机加载启动方法
CN104767741A (zh) 一种基于轻型虚拟机的计算服务分离与安全保护系统
CN108304044A (zh) 一种nvme硬盘热插拔的设置方法及系统
CN108897601A (zh) 一种基于虚拟化的fpga使用方法、系统及相关装置
CN104077266B (zh) 多内核操作系统实现方法和实现装置及系统
CN104391736B (zh) 虚拟机的休眠模式设置方法和装置
CN105677481B (zh) 一种数据处理方法、系统及电子设备
US9015418B2 (en) Self-sizing dynamic cache for virtualized environments
CN102508696A (zh) 一种不对称的资源调度方法及装置
CN109271247A (zh) 内存优化方法、装置、计算机装置以及存储介质
CN106293943A (zh) 一种虚拟资源分配方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170104

RJ01 Rejection of invention patent application after publication