Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 7536|回复: 10

大家编写的服务器,多长时间重启一次?

[复制链接]

该用户从未签到

发表于 2010-12-17 14:16:02 | 显示全部楼层 |阅读模式
大家编写的服务器,多长时间重启一次?
自己编写的服务器,在进行数据库操作时,都会增加一点内存,大家有没有这样的情况?
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2010-12-18 13:13:06 | 显示全部楼层
终于解决操作数据库时的 "内存泄露" .
其实操作数据库是需要内存开销的,我们只能手动释放这些被占用的内存。
究竟怎样去释放这些被占用的内存呢,大家动动脑子想想,高手的飘过.....


晕,每次我提问都是自己来解答。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-12-18 20:27:30 | 显示全部楼层
小弟只聽說鬼會用飄的, 沒聽過高手也會飄 XD
不管有沒辦法解決內存的問題,
只要是 Windows 的 SERVER,
從沒聽過可以連續開機不用 reboot 的
至於需要 reboot  的頻率, 看你連線的數量跟你 ap 的複雜度
應該沒有標準值, 短則兩三天, 多則兩三星期

在業界, 小弟只看過 UNIX SERVER 系統可以連續一年以上不用重啟
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-12-18 21:48:15 | 显示全部楼层
Win Server 不重启是不可能的。

Linux的也可以一年以上不用重启,而且是桌面版的Linux。

楼主是如何释放这些被占用的内存呢?

期待高手解答。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-12-18 21:58:39 | 显示全部楼层
内存泄露
一般没问题,不会重启
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-12-18 23:42:42 | 显示全部楼层
小弟以前在網路上找到的一個 NOTE :

把以下 code 放到 timer 中, 讓它每半小時或 1 小時執行一次
據說可以清掉 memory leak (該釋放而沒釋放乾淨的記憶體區快)
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   SetProcessWorkingSetSize(GetCurrentProcess,0xFFFFFF,0xFFFFFF);
   Sleep(100);
}

不過我相信功能有限, 所以一直沒去用它
(因為我不相信有所謂的什麼程式碼加進去後, 可以讓 AP 完全不再有 memory leak 的仙丹)

最後還是土法鍊鋼, 最保險的方法還是把 SERVER AP 每天自動重啟
選個人少的時段自行重啟, 重啟也不用 5 秒,
CLIENT 也有 RETRY 機制, 不會因為剛好這 5 秒有 CLIENT 連不進來而導致 CLIENT 掛掉
沒有那種 SERVER AP 得時時刻刻都 WORKING 的情況, 每天停機 5 秒為了重啟以保持每天都在最佳工作狀態也無可厚非
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2010-12-19 01:15:02 | 显示全部楼层
XD,什么意思?
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2010-12-19 02:44:50 | 显示全部楼层
引用第2楼bruce0829于2010-12-18 20:27发表的  :
小弟只聽說鬼會用飄的, 沒聽過高手也會飄 XD
不管有沒辦法解決內存的問題,
只要是 Windows 的 SERVER,
從沒聽過可以連續開機不用 reboot 的
至於需要 reboot  的頻率, 看你連線的數量跟你 ap 的複雜度
.......

声明:
1.我问多久重启一次,并不代表永远都不重启
2.使用lazarus就是想跨平台,如果在windows系统编程,我会选择delphi或者vc
3.我已经测试很多次了,不管是使用sqldb或者zeosdb,不管是进行select,insert,update,delete操作
都会造成1M到几百K的内存开销(windwos2003),对服务端来说这是致命的。
想了想mysql服务端和客户端之间的操作流程,这些内存开销是有道理的。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2010-12-19 03:07:11 | 显示全部楼层
windwos下的server,不重启是不可能的。
就算是软件帝国微软的服务器都有一个月重启一次。

多久重启,并不是代表开机后,server就工作100年  XD
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-12-19 08:56:59 | 显示全部楼层
正因不知多久重啟一次叫做適當, 所以小弟我乾脆每天重啟一次 SERVER AP ,
(不用人工處理, 每天凌晨 04:00 自己會重啟自己)
每天重啟的好處 : 有病治病,無病強身 XD

 微笑
 不悅
;) 使眼色
 開心
 吐舌頭
:C 很悲傷
:O 驚訝、張大口
:/ 懷疑
:S 困惑
8) 戴眼鏡者的微笑
xc== 嘔
@-->---- 送你一朵玫瑰花
<*)>>>=< 魚骨頭
<□:≡ 烏賊\
(:≡ 水母
<※ 花束
XP 吐舌頭
XD 大笑
:) 笑臉
:D   笑
:o  驚訝
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-8-27 16:28 , Processed in 0.037902 second(s), 11 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表