CN106293943A - 一种虚拟资源分配方法 - Google Patents
一种虚拟资源分配方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000015654 memory Effects 0.000 claims abstract description 40
- 230000006870 function Effects 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 abstract 1
- 238000007726 management method Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 206010019233 Headaches Diseases 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 231100000869 headache Toxicity 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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函数调用进程地址空间并做资源的初始化处理;
最后再进行资源的读写操作。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110163731A (zh) * | 2019-04-30 | 2019-08-23 | 广州市中智软件开发有限公司 | 中介服务超市的虚拟竞价室的建立方法、系统及存储介质 |
Citations (2)
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 | 北京书生国际信息技术有限公司 | 一种传递共享内存的方法和装置 |
-
2016
- 2016-08-11 CN CN201610655081.8A patent/CN106293943A/zh active Pending
Patent Citations (2)
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)
Title |
---|
LINUX系列教材编写组: "《Linux操作系统分析与实践》", 30 November 2008, 清华大学出版社 * |
百度文库: "Apache内存池内幕", 《HTTPS://WENKU.BAIDU.COM/VIEW/809602D276A20029BD642D12.HTML》 * |
鲍居武等: "《Informix高级编程指南》", 31 October 2000, 清华大学出版社 * |
Cited By (2)
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 |