关于讨论内存释放的问题,查了很多资料都说设定内存大小,可是应该设多大呢?(欢迎高手讨论)

phpteam 2003-01-06 09:58:44
我的情况如下:
内存为512M。
该服务器包括很多应用程序,如:逃犯查询、WEB查询系统等。
我用PHP写了一个WEB查询系统,数据量也不是很多,而且使用后资源都释放掉了。但是1个星期左右内存达到500M,我的系统就提示连接超时了(我把连接超时改为3000了),只有重起才能解决问题,可这样也不是办法,在网上查了好多资料都说设定内存大小,可是应该设多大呢?会对其他应用程序有影响吗???(因为其他系统都不是我开发的,所以说我也不能保证那些系统有没有把资源释放掉)现在的问题是对那些应用程序会有影响吗??(要保证系统的安全、可运行等)


备注:这个问题上次问过大力的,他说的那种方法不行!:(


欢迎高手提供可解决的方案!分不是问题,若建议可行,可另开贴加分(目前我最多只能放100分)
...全文
81 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
phpteam 2003-01-10
  • 打赏
  • 举报
回复
虽然没解决,但还是结贴吧
pengdali 2003-01-06
  • 打赏
  • 举报
回复
哎!
换 双cpu,或小型机,改光纤连接。。。
反正公安有钱
phpteam 2003-01-06
  • 打赏
  • 举报
回复
经常执行清空日志这个方法可能不行,因为服务器是公安内部人员管理的。

至于建个JOB,除了这个方法还有其他可行的吗??因为我也不想动其他数据库,毕竟万一弄坏了就像天塌下来一样,跳进黄河也洗不清了。

谢谢回复!
pengdali 2003-01-06
  • 打赏
  • 举报
回复
在数据库方面:
你做一个(杀多余进程)job每天晚上执行:
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500)
declare @spid int
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status < >-1
begin
exec('kill '+@spid)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end


经常执行:
清空日志
DUMP TRANSACTION @DataBaseName WITH NO_LOG

DBCC SHRINKFILE( @LogoFileName,@NewSize)
--用法
use master
exec killspid '数据库名'
phpteam 2003-01-06
  • 打赏
  • 举报
回复
问题是我写的PHP程序确实释放掉了,但其他应用程序我没办法(是别人写的),能不能提供一个可行的方案呢??使我的程序能运行(除了重起服务之外),又要保证不影响其他应用程序呢??
pengdali 2003-01-06
  • 打赏
  • 举报
回复
哦!你改为0就永不超时!但不治本!
主要是你的程序没有把多余内存,数据库的连接、锁、日志给清除掉!
pengdali 2003-01-06
  • 打赏
  • 举报
回复
什么不行????
版本:presto-server-0.214.tar软件版本 presto-cli-0.214-executableCentOS71、presto的起因 hadoop ---hdfs----MR(java)-----hivehive底层原理用MR,速度比较慢,公司hadoop集群主要集中于晚上到凌晨,平日工作时间负载不是很高。但在工作时间内,公司业务人员有实时询的需求,现在主要借助于hive提供业务人员的询。hive是基于MR类的SQL询工具,他会输入的询SQL解析为MapReduce,能极大的降低使用大数据门槛,让一般的业务人员可以直接准对大数据进行询,但是有一个利弊,它的询基于MR,会让人等待比较着急,等待的时间可能是几个小时或者一天。 spark基于内存提高改良的hive,sql,现在factbook在hive上面开发一套利器,准对hive可以通过sql语句快速询,presto。2、Facebook为何开发Presto  Facebook的2011的数据仓库存储在少量大型hadoopfs集群,Hive是FaceBook在几年前专门为Hadoop打造的一款数据仓库工具,在以前,facebook的科学家和分析师一直靠hive进行数据分析.但hive使用MR作为底层计算框架,是专为批处理设计的,但是随着数据的不断增多,使用hive进行一个简单的数据询可能要花费分钟或者几个小时,显然不能满足询需求,FaceBooke也调研了其他比hive更快的工具,但是他们需要在功能有限的条件下做简单操作,以至于无法操作Facebook庞大的数据要求。2012年开始研究自己的框架--presto,每日可以超过1pb询,而且速度比较快,faceBook声称Presto的性能比hive要好上10倍或者100倍,presto和hive都是facebook开发的 Presto是一个开源的分布式SQL询引擎,适用于交互式询,数据量支持GB到PB字节。Presto的设计和编写完全是为了解决Facebook这样规模的商业数据仓库交互式分析和处理速度的问题Presto可以做什么 Presto支持在线数据询,包括Hive kafka Cassandra关系数据库以及专门数据存储,一条Presto询可以将多个数据源进行合并,可以跨越整个组织进行分析。Presto以分析师的需求作为目标,他们期望相应速度小于1秒到几分钟,Presto要么在使用速度的快的昂贵的商业方案,提高内存,要么是消耗大量的硬件进行快速询。(128G 64G)本套课程教给如何在企业环境中使用Presto技术。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧