iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >六、CPU优化(3)处理器组
  • 607
分享到

六、CPU优化(3)处理器组

处理器CPU 2023-01-31 03:01:22 607人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

一、SQL Server 启动参数  sql Server 有3个默认的启动参数,分别标识3个启动文件的位置。(1)“-d”参数。标识master.mdf文件的位置。一般为C:\Program Files\Microsoft SQL Ser

一、SQL Server 启动参数

  sql Server 有3个默认的启动参数,分别标识3个启动文件的位置。

(1)“-d”参数。标识master.mdf文件的位置。一般为C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\master.mdf 。

(2)“-l”参数。标识master数据库的LDF文件的位置。一般为C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\mastlog.ldf 。

(3)“-e”参数。标识启动日志的文件名和存储位置。一般为C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\ERRORLOG 。

 

  针对不同版本的数据库产品,有2种不同的方法查看启动参数。

1. SQL Server 2012以前的版本

  打开SQL Server配置管理器,编辑某个实例的属性。在“高级”选项卡,在“启动参数”编辑框进行查看或编辑。

 

2. SQL Server 2012

  SQL Server 2012 新增了一个独立的“启动参数”选项卡,专门用于查看和修改启动参数。

 

 

二、启动文件示例

  SQL Server 每次启动时,都先将原来的ERRORLOG.n(n=1,2,3等)改名为ERRORLOG.(n+1),然后将ERRORLOG 文件改名为ERRORLOG.1,最后生成一个新的ERRORLOG 文件。

  先看一下ERRORLOG 文件的前面一部分内容。

2013-08-05 21:05:08.70 Server      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 
 Apr  2 2010 15:48:46 
 Copyright (c) Microsoft Corporation
 Standard Edition (64-bit) on windows NT 6.1 <X64> (Build 7601: Service Pack 1)

2013-08-05 21:05:08.74 Server      (c) Microsoft Corporation.
2013-08-05 21:05:08.74 Server      All rights reserved.
2013-08-05 21:05:08.74 Server      Server process ID is 2560.
2013-08-05 21:05:08.74 Server      System Manufacturer: 'Dell Inc.', System Model: 'PowerEdge R510'.
2013-08-05 21:05:08.74 Server      Authentication mode is MIXED.
2013-08-05 21:05:08.75 Server      Logging SQL Server messages in file 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG'.
2013-08-05 21:05:08.76 Server      This instance of SQL Server last reported using a process ID of 2572 at 8/5/2013 9:02:22 PM (local) 8/5/2013 1:02:22 PM (UTC). This is an infORMational message only; no user action is required.
2013-08-05 21:05:08.76 Server      ReGIStry startup parameters: 
  -d D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\master.mdf
  -e D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG
  -l D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\mastlog.ldf
2013-08-05 21:05:08.82 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2013-08-05 21:05:08.83 Server      Detected 24 CPUs. This is an informational message; no user action is required.

 

  请注意最后一行记录,显示目前SQL Server检测到了总共24个逻辑CPU。

 

三、处理器组

1. 逻辑CPU 

  在购买SQL Server 2008 正版时,标准版和企业版都有一种Per Processor 授权方式,这里的Processor 只是针对物理CPU,与核(core)的数量没有关系。

  从SQL Server 2012开始,不再计算物理CPU的数量,改为按core的数量购买license。但是core的数量并不等同于逻辑CPU 的数量,因为在前一篇文章中还提到超线程。如果启用了超线程,那么逻辑CPU 的数量就是变成了2倍。

  通过以下方式查看处理器的数量:

(1)Windows的系统信息

  在命令提示符下面运行: systeminfo

 

(2)任务管理器

  在任务管理器可以看到有多少个框,代表多少个逻辑CPU。

 

(3)SSMS

  在SSMS中可以查看当前使用了多少个逻辑CPU。

 

(4)DMV

  一个处理器内核可能包含一个或多个逻辑处理器。 以下 Transact-SQL 查询可用于获取系统的 CPU 信息。

SELECT (cpu_count / hyperthread_ratio) AS PhysicalCPUs, 
cpu_count AS logicalCPUs 
FROM sys.dm_os_sys_info 

 

2. 处理器组

  以本人2012年在深圳处理某客户的真实案例来说,有4个物理CPU,每个CPU 有10核,并且启用了超线程,因此逻辑CPU 的数量为 4*10*2=80 。但是,每次SQL Server 启动后在SSMS 查看逻辑CPU 的数量,发现这个数字不确定,例如,有时候是40个逻辑CPU,有时候竟然是20。这是为什么呢?那么需要我们了解一下Windows 是如何识别大数量的逻辑CPU。

  在Windows ver6.0(Windows Vista、Windows Server 2008)操作系统中,不支持超过64个逻辑CPU。之后,随着物理CPU 、核的数量也增加,导致出现了超过64个逻辑CPU 的情形。Windows ver6.1(Windows 7、Windows Server 2008 R2)操作系统为了解除这个限制,引入了处理器组(Processor Group)的概念。这个功能仅适用于64位操作系统,在32位操作系统里无效。Http://msdn.microsoft.com/en-us/library/dd405503(v=vs.85).aspx

  Windows ver6.1在启动时,会根据逻辑CPU之间的物理远近,自动编组。每一个组内的逻辑CPU不能超过64个,超过的部分再编入另一个组。目前的CPU是纳米精度的集成芯片,操作系统在判断逻辑CPU之间的物理远近时难免会发生“误判”。这样导致每次启动Windows时,都可能会得到不一样的分组情况,可能是60+20分配,也可能是40+40分配。

  SQL Server 2008在启动时,Windows以轮询的方式给它分配处理器组,然后SQL Server引擎就一直在这个处理器组里运行,直到重启SQL Server才重新分配处理器组。处理器组的不确定性,使SQL Server能够检测到的逻辑CPU数量也存在不确定性。

  在本例中,建议客户禁用了超线程之后,逻辑CPU的总数量降到40个,都编进一个处理器组了,因此就不存在问题了。

 

 

四. 修复 

1. Windows修复

  Windows ver6.1 目前不能将超过64个逻辑CPU编进一个处理器组。官方只是提供了一个补丁,避免60+20这种极端的分配情况(在此极端情况下,可能会将只有20个逻辑CPU的处理器组分派给SQL Server)。《Performance issues when more than 64 logical processors are used in Windows Server 2008 R2》 http://support.microsoft.com/kb/2510206/zh-cn

 

2. SQL Server 修复

  在Windows ver6.1之后发布的 SQL Server 2008 R2 解决了这个问题,但SQL Server 2008 R2 最多只能检测到256个逻辑CPU。

 

3. NUMA

  对于NUMA架构,可以适当地手动调整。《How to manually configure K-Group assignment on multiprocessor Machines》 http://support.microsoft.com/kb/2506384/zh-cn

 

 

本文结语:

  SQL Server 2008 for Windows Server 2008 在遇到超过64个逻辑CPU时需要注意这个问题。

 

--结束END--

本文标题: 六、CPU优化(3)处理器组

本文链接: https://www.lsjlt.com/news/187681.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 六、CPU优化(3)处理器组
    一、SQL Server 启动参数  SQL Server 有3个默认的启动参数,分别标识3个启动文件的位置。(1)“-d”参数。标识master.mdf文件的位置。一般为C:\Program Files\Microsoft SQL Ser...
    99+
    2023-01-31
    处理器 CPU
  • Mysql优化器对in list的处理
    select * from table where id in (....)这样的查询,是走范围索引还是走等值索引? select * from table where...
    99+
    2024-04-02
  • Python机器学习入门(六)之Python优化模型
    目录1.集成算法1.1袋装算法1.1.1袋装决策树1.1.2随机森林1.1.3极端随机树1.2提升算法1.2.1AdaBoost1.2.2随机梯度提升1.3投票算法2.算法调参2.1...
    99+
    2024-04-02
  • 如何使用编程算法优化 ASP 容器中的数组处理?
    在 ASP 容器中处理数组是一个非常普遍的需求,然而随着数组的规模越来越大,传统的数组处理方式已经无法满足我们的需求。这时候,我们就需要使用编程算法来优化数组处理的效率。本文将介绍如何使用编程算法来优化 ASP 容器中的数组处理。 一、选择...
    99+
    2023-10-25
    容器 编程算法 数组
  • PHP HTTP数组:如何优化大数据的处理效率?
    随着互联网技术的不断发展,大数据处理已成为企业必不可少的一项技能。在PHP中,HTTP数组是一种常用的数据类型,它能够帮助我们方便地接收和处理客户端提交的数据。但是,当需要处理大量数据时,HTTP数组的效率会变得非常低下,这时就需要优化处...
    99+
    2023-10-09
    http 数组 大数据
  • 基于最优化原理的组合优化问题解法
    作者:禅与计算机程序设计艺术 1.简介 一、需求背景 在日常生活中,许多决策都需要综合考虑多个因素的影响,比如选择出行方式、取餐点、购买商品等等。而每个决定对最终结果有着极其重要的作用。因此,如何合...
    99+
    2023-09-27
    自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
  • ASP 自然语言处理:如何通过 NumPy 数组优化文本处理速度?
    ASP自然语言处理:如何通过NumPy数组优化文本处理速度? 随着人工智能技术的不断发展,自然语言处理(NLP)的应用越来越广泛。然而,在NLP任务中,文本处理速度通常是一个重要的挑战。为了解决这个问题,我们可以通过使用NumPy数组来优化...
    99+
    2023-11-08
    load 自然语言处理 numy
  • C++ 函数优化详解:如何优化异常处理?
    c++++ 异常处理优化策略:避免抛出和捕获异常正确传播异常到更高层级使用 noexcept 规范声明不会抛出异常的函数只在需要时使用 try/catch 块使用异常规范指定函数可能抛出...
    99+
    2024-05-03
    c++ 函数优化
  • 怎么处理Web图片优化
    小编给大家分享一下怎么处理Web图片优化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!计算 JPG 文件尺寸未压缩图片的尺寸很容...
    99+
    2024-04-02
  • 如何优化MySQL循环处理
    要优化MySQL循环处理,可以考虑以下几个方面: 使用批量操作:避免在循环中逐条处理数据,可以将数据批量处理,减少循环次数,提高...
    99+
    2024-04-30
    MySQL
  • win7怎么设置CPU处理器核数?
    怎么设置cpu处理器核数呢?一般的电脑都是2核及以上,最大核心数8核,我们可以自由设置CPU处 1、在开始菜单中,打开运行,如图 2、输入msconfig,点击确定, 3、选择引导, 4、点击高级选项,如图 5、...
    99+
    2023-05-22
    win7 CPU 处理器
  • 高通处理器CPU性能路线图
    智能手机路线图:新的LTE调制解调器类别:智能手机平台:QCT计算路线图:QRD路线图:射频收发器POR路线图:RFFE路线图和产品组合:综合RFFE产品组合综合RFFE投资组合:全球SKU高级层RFFE:区域手机的RFFE SKU注:只节...
    99+
    2023-06-05
  • PostgreSQL 源码解读(33)- 查询语句#18(查询优化-表达式预处理#3)
    本节简单介绍了PG查询优化表达式预处理中的规范化过程。规范化具体的做法一是忽略NULL以及OR中的False,And中的True(实现函数find_duplicate_ors),二...
    99+
    2024-04-02
  • Linux环境下如何优化PHP中的数组和对象处理?
    在Linux环境下使用PHP进行开发时,数组和对象的处理是非常常见的操作。然而,如果不加以优化,在处理大量数据时,会导致性能下降,甚至崩溃。本文将介绍一些在Linux环境下优化PHP中数组和对象处理的方法,以提高代码的性能。 一、使用正确的...
    99+
    2023-08-24
    linux 数组 对象
  • 优化数据处理的方法,深入解析numpy数组拼接
    numpy是Python中用于数值计算的重要库之一,它提供了丰富的数学函数和高效的数组操作,使得数据处理变得更加高效和简洁。在numpy中,数组拼接是常见的操作之一,本文将详细介绍numpy中的数组拼接方法,并给出具体的代码示例...
    99+
    2024-01-26
    数据处理 高效 拼接方法
  • 阿里云服务器CPU利用率如何优化性能
    随着云计算的发展,越来越多的企业和个人选择在阿里云上部署服务器。然而,如何提高阿里云服务器的CPU利用率是一个值得探讨的问题。本文将从多个角度深入解析如何优化阿里云服务器的CPU利用率。 一、了解阿里云服务器CPU利用率阿里云服务器的CPU...
    99+
    2024-01-25
    阿里 利用率 性能
  • PHP 性能优化:图像处理性能调优
    优化图像处理性能的方法:禁用可选的图像处理函数扩展(gd 库)。使用更快的第三方图像处理库(如 imagick 或 intervention image)。缓存已处理的图像以避免重复执行...
    99+
    2024-05-10
    图像处理 php redis 延迟加载
  • 处理和优化 MySQL 死锁锁定
    很抱歉,由于技术限制,我无法提供具体代码示例。但是我可以帮你提供一个讲解MySQL锁、死锁处理与优化的大纲,供你参考。MySQL 锁的死锁处理与优化一、MySQL锁的分类读锁(共享锁)写锁(排它锁)二、死锁概念什么是死锁死锁产生的条件如何避...
    99+
    2023-12-21
    MySql锁 死锁处理 锁优化
  • PHP 函数的并行处理优化
    php 的并行处理功能通过 process 类实现,可优化耗时任务,如图像处理、数据分析和文件转换。它将任务分配给多个处理器,减少完成时间,提高应用程序性能。 PHP 函数的并行处理优...
    99+
    2024-05-05
    php 并行处理
  • PHP如何优化大数据处理?
    PHP作为一种流行的编程语言,被广泛地应用于大数据处理领域。然而,由于PHP是一种解释性语言,其性能与C语言等编译性语言相比较较差。本文将介绍一些PHP优化技巧,帮助您提高PHP在大数据处理方面的性能。 一、选择合适的数据结构 数据结构是一...
    99+
    2023-06-15
    大数据 unix 索引
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作