Windows server12 系统内存

Windows server12 系统服务器 16G内存
系统运行后内存占用率逐渐增加,最终增加到15G以上,运行很慢,
但是任务管理器中显示全部进程占用内存只有1G,缓存1G,
系统中安装了1套KING SCADA
kinghistory
RSLINX
没有大型的数据库
是中毒了吗

![图片说明](https://img-ask.csdn.net/upload/201712/10/1512886949_708261.jpg)<br>
图片说明

我的服务器和你一样 应该不是这样理解的

你是把内存分给虚拟机了吗

内存1G 缓存1G

1:要获取系统里面有多少内存,使用了多少,例如在服务器编程里面就需要获取这些信息,如果要获取物理内存大小以及一些详细的资料吗,需要使用函数:
GlobalMemoryStatus(),函数:
[cpp] view plain copy
void WINAPI GlobalMemoryStatus(

Out LPMEMORYSTATUS lpBuffer

);

参数:

[cpp] view plain copy
typedef struct _MEMORYSTATUS {

DWORD dwLength;//当前整个结构体的长度,Windows里面很多结构体都会有这个,适用于做半杯匹配。

DWORD dwMemoryLoad;//0~100的一个参数,代表内存正在使用的一个状态,与360看到的那个百分比是一样的,

SIZE_T dwTotalPhys;//当前实际内存的大小,是以字节的方式计算的。

SIZE_T dwAvailPhys;//当前物理内存里面可用内存的大小

SIZE_T dwTotalPageFile;//指内存里面分页的个数,分页个数*页面大小=物理内存总大小

SIZE_T dwAvailPageFile;//可用页面大小

SIZE_T dwTotalVirtual;//总进程的大小

SIZE_T dwAvailVirtual;

} MEMORYSTATUS, *LPMEMORYSTATUS;

2:测试代码:
[cpp] view plain copy
#include

#include

#include

int main()

{

setlocale(LC_ALL, "chs");

MEMORYSTATUS memStatus;

GlobalMemoryStatus(&memStatus);  
_tprintf(TEXT("内存使用百分比:%d%%\r\n"), memStatus.dwMemoryLoad);  
_tprintf(TEXT("内存总大小:%dMB\r\n"), memStatus.dwTotalPhys / 1024 / 1024);//以%d直接打印会超出范围,转换为MB就可以了  
_tprintf(TEXT("可用内存大小:%dMB\r\n"), memStatus.dwAvailPhys / 1024 / 1024);  

return 0;  

}

将会打印出内存的使用情况。

其实是你的杀毒软件和监控程序和显存占用你的内存,你可以关闭杀毒软件和进bois设置试试看吧?我以前就是这样解决的

我之前也有一次这种情况,但是我重启之后就好了,你这种没有细究过,多问度娘吧

:要获取系统里面有多少内存,使用了多少,例如在服务器编程里面就需要获取这些信息,如果要获取物理内存大小以及一些详细的资料吗,需要使用函数:
GlobalMemoryStatus(),函数:
[cpp] view plain copy
void WINAPI GlobalMemoryStatus(
Out LPMEMORYSTATUS lpBuffer
);
参数:
[cpp] view plain copy
typedef struct _MEMORYSTATUS {
DWORD dwLength;//当前整个结构体的长度,Windows里面很多结构体都会有这个,适用于做半杯匹配。
DWORD dwMemoryLoad;//0~100的一个参数,代表内存正在使用的一个状态,与360看到的那个百分比是一样的,
SIZE_T dwTotalPhys;//当前实际内存的大小,是以字节的方式计算的。
SIZE_T dwAvailPhys;//当前物理内存里面可用内存的大小
SIZE_T dwTotalPageFile;//指内存里面分页的个数,分页个数*页面大小=物理内存总大小
SIZE_T dwAvailPageFile;//可用页面大小
SIZE_T dwTotalVirtual;//总进程的大小
SIZE_T dwAvailVirtual;
} MEMORYSTATUS, *LPMEMORYSTATUS;
2:测试代码:
[cpp] view plain copy
#include
#include
#include
int main()
{
setlocale(LC_ALL, "chs");
MEMORYSTATUS memStatus;
GlobalMemoryStatus(&memStatus);

_tprintf(TEXT("内存使用百分比:%d%%\r\n"), memStatus.dwMemoryLoad);

_tprintf(TEXT("内存总大小:%dMB\r\n"), memStatus.dwTotalPhys / 1024 / 1024);//以%d直接打印会超出范围,转换为MB就可以了

_tprintf(TEXT("可用内存大小:%dMB\r\n"), memStatus.dwAvailPhys / 1024 / 1024);
return 0;

你试试关了一些后台看看

应该是分配给显卡了吧

你是把内存分给虚拟机了,缓存大