我有一个大型游戏引擎,可以为手机客户端和网站提供服务。数据库是 MSSQL2008,引擎是用 C# 编写的。
网站是用ASP.NET MVC构建的,手机的web服务也是基于ASP.NET MVC构建的(可能会迁移到WCF或者纯socket服务器)。
该网站和 Web 服务位于 IIS 7 服务器上,而 DB 位于专用服务器上。两者都连接在本地快速 LAN 上。
游戏需要每个用户的实时响应(低于 1 秒)。当我对服务进行一些负载测试时 - 似乎在大约 250 个用户上它达到了 1 秒响应(在 50 时大约为 200 毫秒)。它应该支持超过 10000 个连接的用户。(我猜是服务器复制)。
我想再添加一层 - 用于游戏 Web 服务的专用实时服务器。我听说 Python 可用于构建非常高性能的服务 - 添加这一层是一个聪明的主意吗?(该层应该有内存临时数据库来为实时玩家提供服务,然后每 X 秒将其全部转储到后端数据库)。
我的架构好吗?怎么改进呢?
我得到低于错误。
数据库“CRM_QA_V6”的事务日志已满。要找出无法重用日志中的空间的原因,请参阅可能由 IncludeExceptionDetailInFaults=true 创建的 sys.databases 中的 log_reuse_wait_desc 列
当我执行下面提到的查询时,我得到了输出:
Query: select log_reuse_wait_desc from sys.databases where name ='CRM_QA_V6'
Output: 'NOTHING'
Run Code Online (Sandbox Code Playgroud) sql server 标准是否与 windows server 2008 r2 打包在一起?
windows-server-2008 windows-server-2008-r2 sql-server sql-server-2008
我们从这个服务器移动:
SQL Server Express R2 (has a 1CPU/1GB ram limit as far as I'm aware)
2GB Ram
2 core 2.1ghz
Run Code Online (Sandbox Code Playgroud)
到这个服务器:
SQL Server R2 Enterprise
8GB Ram
4 core 3.2ghz
Run Code Online (Sandbox Code Playgroud)
一切似乎都运行良好。我们用于数据库的 MDF 和 LDF 文件组合大约为 600mb(我们只运行 1 个数据库)。
我查看了服务器的一些内存选项,发现我们的数据库将最小服务器内存设置为 0MB,最大设置为 2147483647MB。 Use AWE to allocate memory
已关闭。
我们会通过调整这些值而受益吗?在 8GB 内存中,我们有 5.5GB 免费。我们仍然需要在服务器上安装一个 Web 应用程序,但这根本没有用。
我有一个在 VMware ESXi 上运行 Server 2003 和 SQL Server 2008 的虚拟机。我可以安全地假设此配置可以应对 vCPU 数量的变化吗?是否有更好的解决方案来满足客人的需求?更多信息如下...
在升级到使用 SQL 的软件后,我看到 SQL 服务器的 CPU 需求显着增加,通常一次达到 100% 几分钟。用户抱怨软件响应缓慢。VM 仅分配了一个 vCPU。我建议的解决方案是增加分配给 VM 的 vCPU 数量。
有没有人有使用这种配置增加 vCPU 数量的经验?唯一让我害怕的是 vSphere 中的警告,即“安装来宾操作系统后可能会使您的虚拟机不稳定”的更改。阅读对类似问题的回答,似乎应该可以正常工作。
最好为此 VM 保留一些 CPU 还是通过资源“共享”属性更改处理优先级?
virtualization windows-server-2003 performance sql-server-2008 vmware-esxi
在 Management Studio 中,我想从现有数据库恢复到某个时间点。但是,我可以在下拉列表中选择的数据库不包括我要选择的数据库。奇怪的是,列表中的数据库也已被删除。
我关闭/重新打开管理工作室希望它会刷新但没有这样的运气。
有人知道这里有什么交易吗?
我需要一个小时来备份我的 24GB 数据库。我将备份放在与实际 SQL 数据库所在位置相同的磁盘上,但我认为这不是原因。
当我执行时exec sp_who2
,结果如下:
这是结果
SELECT wt.session_id, ot.task_state, wt.wait_type, wt.wait_duration_ms, wt.blocking_session_id, wt.resource_description, es.[host_name], es.[program_name] FROM sys.dm_os_waiting_tasks wt INNER JOIN sys.dm_os_tasks ot ON ot.task_address = wt.waiting_task_address INNER JOIN sys.dm_exec_sessions es ON es.session_id = wt.session_id WHERE es.is_user_process = 1
Run Code Online (Sandbox Code Playgroud)
这是性能窗口:
如何诊断此问题?
我刚刚获得了对安装了 SQL Server 2008 R2 的新 Windows Web Server 2008 R2 的访问权限。当我打开 SQL Server Management Studio 并尝试连接时,它使用 Windows 身份验证进行连接,但是,它不会要求我输入密码,并且成功连接。
我担心(希望不是)不应该访问服务器的人会这样做,然后可以轻松连接到 SQL Server Management Studio,甚至不需要输入密码,然后就可以访问数据库。例如,窃取了 Windows Web Server 登录详细信息的人。他们现在登录到 Web 服务器,并且因为他们使用的登录详细信息标识了该用户使用 Windows 身份验证(无需密码)访问 SQL Server 的权限,因此他们可以访问数据库和数据。
确保任何想要访问我的数据库的人都必须输入密码的最佳方法是什么?
我知道我可以在 SQL Server 中创建用户帐户并将用户分配给特定的数据库(SQL Server 身份验证),但这并不能解决不应该在服务器上的用户的问题,只需选择 Windows 身份验证类型,输入没有密码,并且可以完全访问我的数据库。
有人可以就此提出建议吗?
谢谢各位。
我使用 SQL Server 2008 R2 有一段时间了。它工作得很好。现在我需要使用 SQL Server 2012。这会影响我现有的数据库吗?在运行 SQL Server 2008 R2 的计算机上安装 SQL Server 2012 涉及多少风险。
我在服务器上有 60 Gb 的 RAM。Windows 2008,带有 PAE 的 32 位。
一个 Sql Server 2008 Express 实例可以使用 1 Gb 的 RAM。因此,如果我安装 60 个实例,每个实例都可以使用 1 Gb RAM,对吗?
第二个问题,如果我安装64位系统并使用许多Express实例会怎样?
我们有一台运行 SQL 2008 R2 的 Dell R510 服务器,带有 8 个运行 Raid 5 的 300GB 驱动器。
我们(刚刚注意到)我们有三个指示灯闪烁的坏驱动器,所以我们关闭了服务器并用新的替换了它们。
当服务器恢复时,指示灯为绿色(但不闪烁)。
服务器只显示 XXXX GB 的空间,所以它没有读取驱动器,我们是否错过了将新驱动器联机的步骤?
raid 阵列需要时间来构建还是应该一次交换一个?
我们有数据的副本,因此恢复它不是主要问题。
sql-server-2008 ×11
sql-server ×6
32-bit ×1
32bit-64bit ×1
dell ×1
iis-7 ×1
pae ×1
performance ×1
python ×1
raid5 ×1
sql ×1
vmware-esxi ×1
windows ×1