首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 散分了,顺便提问:ASP.NET服务器发生“Server is Too Busy”错误及响应很慢一般怎么解决? [已结贴,结贴人:jieyf]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jieyf
    • 等级:
    发表于:2008-05-15 15:31:24 楼主
    ASP.NET服务器经常发生“Server is Too Busy”及响应很慢一般怎么解决?

    附:招聘.NET开发人员[北京海淀区]
    工作职责 
      1. 能够独立完成项目、产品规划与设计。 
      2. 按照项目要求保质保量的完成开发任务。 
      3. 能够独立完成技术相关文档(如项目计划文档、需求文档、设计文档、测试文 档等)。
       
      应聘要求 
      1、熟悉dotNet(visual studio.net 2003/2005)开发平台,精通ASP.NET(C#) WEB开发。
      2、本科及以上学历,三年及以上工作经验,能力达到职位要求可适当放宽条件。
      3、为人诚信,勤奋,工作责任心强,能承受紧张的工作压力。
      4、有产品开发经验的优先

    有意请发Email:jieyf@163.com
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-15 15:33:401楼 得分:0
    顶一个!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jieyf
    • 等级:
    发表于:2008-05-15 15:52:342楼 得分:0
    招聘2人,工作地北京中关村。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-15 15:52:473楼 得分:0
    jf
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-15 16:53:404楼 得分:0
    有分接
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-15 17:15:425楼 得分:0
    楼主 写下待遇咯 ~

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • huing
    • 等级:
    发表于:2008-05-15 17:28:546楼 得分:0
    新的劳动法要求招聘标明薪资
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-15 17:48:047楼 得分:0
    o
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-15 18:02:458楼 得分:0
    ding
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-15 19:05:149楼 得分:10
    没办法,就是压力太大

    优化,优化再优化

    把可以分离的应用都分离出来

    可以创建不同的应用程序池。

    升级服务器。

    还有就是代码问题了,可以逐个页面进行压力测试,一般压死网站的也就一两个页面。除非......
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zengxie
    • 等级:
    发表于:2008-05-15 19:14:3010楼 得分:0
    路过看看~~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-15 23:02:0711楼 得分:5
    是不是服务器版本的问题? 如果性能的问题的话应该是打开页面慢, 甚至超时不能打开.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-15 23:09:1712楼 得分:0
    没有遇到过这个问题诶.
    呵呵,不知道,
    帮顶一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-15 23:09:4813楼 得分:0
    顺便接分的哈~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 07:47:1014楼 得分:0
    fj
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 08:01:3015楼 得分:5
    压力过大。导致访问拒绝
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 08:28:1616楼 得分:0
    引用 15 楼 tiancaolin 的回复:
    压力过大。导致访问拒绝
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 09:00:1817楼 得分:5
    看看程序代码,有没有死循环。
    看看程序中有关非托管资源(比如文件操作、数据库操作)有没有及时释放。
    看看程序中有没有滥用某些特性(比如什么东西都向Application中保存)。
    检查服务器性能是不是太低。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 09:21:1218楼 得分:5
    是否过多使用cache,session等服务器资源?

    数据库资源释放是否及时?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 09:23:1119楼 得分:0
    jf
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 09:46:5320楼 得分:0
    too busy!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 09:54:5021楼 得分:5
    一般情况而言,你服务器压力大了。考虑均衡负载吧。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 09:55:3722楼 得分:0
    该回复于2008-05-16 12:56:14被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 09:56:1323楼 得分:0
    ding
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 10:03:3324楼 得分:0
    引用 21 楼 songsu 的回复:
    一般情况而言,你服务器压力大了。考虑均衡负载吧。


    借楼主个地方问问 什么是均衡负载
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 10:06:1125楼 得分:0
    jf
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 10:10:4926楼 得分:0
    北京好远哦。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 10:44:1227楼 得分:0
    可以聊聊,基本达到楼主的要求
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 10:50:3428楼 得分:0
    该回复于2008-05-16 10:55:02被管理员删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 10:52:5429楼 得分:0
    负载群集就是win2003自带的组件
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 13:36:5230楼 得分:0
    接分
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 14:33:5631楼 得分:0
    项目优化吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 14:44:1232楼 得分:0
    看来是个招聘贴...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • andyhooo
    • 等级:
    发表于:2008-05-16 15:14:4533楼 得分:5
    日志看看.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 15:31:2034楼 得分:30
    服务器功能分开
    1,web 1台或多台。
    2,图片1台
    3,文件1台
    4,数据库1台

    我们现在就是这样做的,设置服务器之间可写的web权限,代码见:
    http://topic.csdn.net/u/20080320/16/3e89e70d-e929-44ed-ac93-83c94d75d0f7.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:58:2835楼 得分:30
    提高ASPX服务器性能的几大狠招

    ∆ 第0招依靠测试工具,以下根据ACT test测试结果,整理。【全部招数凶狠度的依据】

    所谓性能优化,必须是建立在测试的基础之上的,ACT Test是比较爽的测试工具,比Load Runner方便,比Web Stress直观,支持脚本编程和录制登陆到注销全过程。
    所有优化都要进行对比测试,才是评判的数字依据。
    所以,个人认为:不做压力测试,优化是可以做,但是没数据支持,是不严谨的。


    ∆ 第一招生成静态。【凶狠度排名第一:性能RPS提升两个数量级(提高速度百倍)】

    以下是截取Response的Stream生成文件的代码
    protected override void Render(HtmlTextWriter writer)
        {
            StringWriter stringWriter = new StringWriter();
            HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
            base.Render(htmlTextWriter);

            if (本页允许生成静态HTML)
            {
      //根据aspx的get参数构造出的HTML文件名,如:aaa.aspx?id=1 转化成 aaa_id_1.html
                string filePath = Server.MapPath(htmlFileName);

                StreamWriter streamWriter = new StreamWriter(filePath , false, Encoding.UTF8);

                streamWriter.Write(HTML);

                streamWriter.Close();

                htmlTextWriter.Close();
    }
    }
    生成后,以后先判断是否有这个文件,如果有就跳过去。
    本页允许生成静态HTML,可以在后台做一个钩选和更新,并且在内容发生变化后删除静态HTML。

    ∆ 第二招,图片文件分流服务器。【凶狠度排名第二:性能RPS提升1个数量级(提高速度十倍)】


    1,web 1台或多台。
    2,图片1台或多台。
    3,文件1台或多台。
    4,数据库1台或多台。
    不同机房要采用Remoting分发文件是个不错的主义,就是工作量大。
    以下是同机房多服务器之间可以通过web读写分发文件的关键代码。


    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.IO;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Security.Principal;
    using System.Runtime.InteropServices;

    namespace WebApplication1
    {
        public partial class _Default : System.Web.UI.Page
        {
            public const int LOGON32_LOGON_INTERACTIVE = 2;
            public const int LOGON32_PROVIDER_DEFAULT = 0;

            WindowsImpersonationContext impersonationContext;

            [DllImport("advapi32.dll", CharSet = CharSet.Auto)]
            public static extern int LogonUser(String lpszUserName,
                                      String lpszDomain,
                                      String lpszPassword,
                                      int dwLogonType,
                                      int dwLogonProvider,
                                      ref IntPtr phToken);
            [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
            public extern static int DuplicateToken(IntPtr hToken,
                                    int impersonationLevel,
                                    ref IntPtr hNewToken);
            private bool impersonateValidUser(String userName, String domain, String password)
            {

                IntPtr token = IntPtr.Zero;
                IntPtr tokenDuplicate = IntPtr.Zero;

                if (LogonUser(userName, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref token) != 0)
                {
                    if (DuplicateToken(token, 2, ref tokenDuplicate) != 0)
                    {
                        WindowsIdentity tempWindowsIdentity;
                        tempWindowsIdentity = new WindowsIdentity(tokenDuplicate);
                        impersonationContext = tempWindowsIdentity.Impersonate();
                        if (impersonationContext != null)
                            return true;
                        else
                            return false;
                    }
                    else
                        return false;
                }
                else
                    return false;
            }
            private void undoImpersonation()
            {
                impersonationContext.Undo();//回退为未更改前账户
            }
            protected void Page_Load(object sender, EventArgs e)
            {
                //临时更改为 跟 网络硬盘相同用户名密码的账户(此账户必须在网络盘有写入权限)本机也需要同样帐号密码的帐户
                if (impersonateValidUser("administrator", "192.168.1.102", "kuqu123456"))
                {             
                    Response.Write(System.IO.File.Exists(@"\\192.168.1.102\share\C#高级编程\C#高级编程(第四版).pdf"));               
                  &nb