cpu参数

CPU-内存-IO-网络调优

匿名 (未验证) 提交于 2019-12-03 00:40:02
一、关于CPU 中央处理器调优 1、 CPU处理方式: 批处理,顺序处理请求。(切换次数少,吞吐量大) 分时处理。(如同"独占",吞吐量小)(时间片,把请求分为一个一个的时间片,一片一片的分给CPU处理)我们现在使用x86就是这种架构 实时处理 例如: 批处理――以前的大型机(Mainframe)上所采用的系统,需要把一批程序事先写好(打孔纸带),然后计算得出结果 分时――现在流行的PC机和服务器都是采用这种运行模式,即把CPU的运行分成若干时间片分别处理不同的运算请求 实时――一般用于单片机上,比如电梯的上下控制,对于按键等动作要求进行实时处理 2、 查看CPU一分钟有多个切换多少次 #查看内核一秒钟中断CPU次数 [root@xuegod70 ~]# grep HZ /boot/config-3.10.0-693.el7.x86_64 CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set # CONFIG_NO_HZ_IDLE is not set CONFIG_NO_HZ_FULL=y # CONFIG_NO_HZ_FULL_ALL is not set CONFIG_NO_HZ=y # CONFIG_RCU_FAST_NO_HZ is not set # CONFIG_HZ_100 is not set # CONFIG

多线程与多进程的理解

匿名 (未验证) 提交于 2019-12-03 00:40:02
参考https://www.liaoxuefeng.com/ 线程是最小的执行单元,而进程由至少一个线程组成。如何调度进程和线程,完全由操作系统决定,程序自己不能决定什么时候执行,执行多长时间。 多进程和多线程的程序涉及到同步、数据共享的问题,编写起来更复杂。 在 Unix / Linux 下,可以使用 fork ()调用实现多进程。 要实现跨平台的多进程,可以使用 multiprocessing 模块。 进程间通信是通过 Queue 、 Pipes 等实现的 多线程和多进程最大的不同在于,多进程中,同一个变量,各自有一份拷贝存在于每个进程中,互不影响,而多线程中,所有变量都由所有线程共享,所以,任何一个变量都可以被任何一个线程修改,因此,线程之间共享数据最大的危险在于多个线程同时改一个变量,把内容给改乱了。 因为 Python 的线程虽然是真正的线程,但解释器执行代码时,有一个 GIL 锁: Global Interpreter Lock ,任何 Python 线程执行前,必须先获得 GIL 锁,然后,每执行 100 条字节码,解释器就自动释放 GIL 锁,让别的线程有机会执行。这个 GIL 全局锁实际上把所有线程的执行代码都给上了锁,所以,多线程在 Python 中只能交替执行,即使 100 个线程跑在 100 核 CPU 上,也只能用到 1 个核。 不过,也不用过于担心,

psutil 模块的功能

匿名 (未验证) 提交于 2019-12-03 00:37:01
一、psutil模块 1. psutil是一个跨平台库( http://code.google.com/p/psutil/ ),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统, 2.安装 wget https: / /pypi.python.org/packages / source /p /psutil/psutil - 2.0 . 0 .tar.gz tar -xzvf psutil- 2.0 . 0 .tar.gz cd psutil- 2.0 . 0 python setup.py install 3.使用 获取系统性能信息(CPU,内存,磁盘,网络) 3.1CPU相关 查看cpu信息 import Psutil 查看cpu所有信息 >>> psutil.cpu_times() scputimes(user= 11677.09 , nice=

进程,线程,协程

匿名 (未验证) 提交于 2019-12-03 00:36:02
cpu:内核 进程: 优点:提高效率,利用cpu多核优势 开启个数:理论上是cpu内核的1-2倍 描述:一段程序或者脚本的执行,cpu资源分配的最小单位 缺点:资源消耗非常大,进程过多,cpu切换进程执行也消耗资源,资源共享困难 使用场景:cpu密集型应用程序(计算密集型) 线程: 优点:提高效率,资源共享 开启个数:跟计算硬件有关系,跟应用场景有关系,一般高于可开启进程守数 描述:进程下可以开启多个线程,cpu调度的最小单位 缺点:开启个数也不是无限的,如果开启过多,造成进程瘫痪 使用场景:IO(input(response),ouput(request),)密集型应用程序,爬虫成是网络IO,长延时操作 跨平台的进程创建模块(multiprocessing) multiprocessing模块提供了一个Process类来代表一个进程对象,下面的例子演示了启动一个子进程并等待其结束 步骤: 1、从multiprocessing模块导入Process类 2、进程的操作(1)创建和启动创建子进程时,只需要传入一个执行函数和函数的参数,创建一个Process实例,用start()方法启动,这样创建进程比fork()还要简单。创建格式:p=Process(target=函数名)启动格式:进程对象名.start() 参数列表:Process([group [, target [, name

CUDA 积分法求PI

匿名 (未验证) 提交于 2019-12-03 00:27:02
《GPU高性能编程CUDA实战》 http://vdisk.weibo.com/s/uGXsmIpCn_4ug?category_id=0 π = 4 ∫ 1 0 1 1 + x 2 d x π = 4 ∫ 0 1 1 1 + x 2 d x CPU在GPU上申请空间 cudaMalloc(起始地址,大小) CPU将数据从内存拷贝到显存 cudaMemcpy(源,目标,大小,方向) CPU启动GPU上的内核进行计算 kernel_name <<<blocks,threads>>>(函数参数) CPU将处理结果从显存拷贝到内存 cudaMemcpy(源,目标,大小,方向) #include "cuda_runtime.h" #include "device_launch_parameters.h" #include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> static void HandleError( cudaError_t err, const char *file, int line ) { if (err != cudaSuccess) { printf( "%s in %s at line %d\n" , cudaGetErrorString( err ), file, line )

【计算机系统结构】第5章 存储层次问答题

匿名 (未验证) 提交于 2019-12-03 00:27:02
第5 1. 单级存储器的主要矛盾是什么?通常采取什么方法来解决? (3) 容量越大,速度越慢。 采取多级存储层次方法来解决。 2. 评价存储层次的主要参数有哪些? 存储层次的平均每位价格、命中率或失效率、平均访问时间。 3. “Cache-主存”和“主存-辅存”层次的主要区别是什么? 存储层次 比较项目 “Cache- 主存 ” 层次 “ 主存 - 辅存 ” 层次 目的 为了弥补主存速度的不足 为了弥补主存容量的不足 存储管理的实现 全部由专用硬件实现 主要由软件实现 访问速度的比值 (第一级比第二级) 几比一 几万比一 典型的块(页)大小 几十个字节 几百到几千个字节 CPU 对第二级的访问方式 可直接访问 均通过第一级 不命中时 CPU 是否切换 不切换 切换到其他进程 4. 在存储层次中应解决哪四个问题? (4)写策略:当进行写访问时,应进行哪些操作。 5. 地址映像方法有哪几种?它们各有什么优缺点? (1)全相联映像。实现查找的机制复杂,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。 (2)直接映像。实现查找的机制简单,速度快。Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。 (3)组相联映像。组相联是直接映像和全相联的一种折中。 6. 组相联Cache比相同容量的直接映像Cache的失效率低

如何提高服务器并发处理能力

匿名 (未验证) 提交于 2019-12-03 00:22:01
什么是服务器并发处理能力 一台服务器在单位时间里能处理的请求越多,服务器的能力越高,也就是服务器并发处理能力越强 有什么方法衡量服务器并发处理能力 1. 吞吐率 吞吐率,单位时间里服务器处理的最大请求数,单位req/s 从服务器角度,实际并发用户数的可以理解为服务器当前维护的代表不同用户的文件描述符总数,也就是并发连接数。服务器一般会限制同时服务的最多用户数,比如apache的MaxClents参数。 这里再深入一下,对于服务器来说,服务器希望支持高吞吐率,对于用户来说,用户只希望等待最少的时间,显然,双方不能满足,所以双方利益的平衡点,就是我们希望的最大并发用户数。 2. 压力测试 有一个原理一定要先搞清楚,假如100个用户同时向服务器分别进行10个请求,与1个用户向服务器连续进行1000次请求,对服务器的压力是一样吗?实际上是不一样的,因对每一个用户,连续发送请求实际上是指发送一个请求并接收到响应数据后再发送下一个请求。这样对于1个用户向服务器连续进行1000次请求, 任何时刻服务器的网卡接收缓冲区中只有1个请求,而对于100个用户同时向服务器分别进行10个请求,服务器的网卡接收缓冲区最多有100个等待处理的请求,显然这时的服务器压力更大。 压力测试前提考虑的条件 并发用户数: 指在某一时刻同时向服务器发送请求的用户总数(HttpWatch) 总请求数 请求资源描述

uc/OS III任务的理解

匿名 (未验证) 提交于 2019-12-03 00:21:02
任务的概念 在实际应用中一般是将工作拆分为多个任务的,并且每个任务都是可靠的。在使用uC/OS就可以很好的解决这个问题,任务又叫线程,在对于单个CPU来说,在任何时刻,都是只能有有一个任务被执行。 uC/OS-III 支持多任务且对任务数量没有限制,任务数仅取决于处理器内存的大小(RAM)。多任务调度是任务间占用CPU 的过程。CPU 有根据算法切换任务。多任务调度让人感觉到是有多个CPU在运行,并最大化利用CPU。多任务调用有助于模块化应用,是最重要的功能之一,能帮助程序员管理复杂的实时性应用。它也使程序易于设计和维护。 任务用于监控输入、更新输出、计算、循环控制、显示、读按钮和键盘、与其它系统交流等。有些应用中可能只包含少数任务,有些应用中也可能包含上百个任务。任务数多并不意味这设计有多好或者有多有效,这依赖于应用的需要。任务的功能也要根据应用设计。一个任务可能只需要工作几微秒,然而有些任务可能就需要工作几十毫秒了。 在大多数嵌入式系统中,任务通常是无限循环的。任务不能像C 函数那样,它是不能return 的。 当任务第一次执行时,会传入一个变量"p_arg"。这是一个指向void的指针。用于变量的地址、结构体地址、或者函数的地址等。只运行一次的任务结束时必须通过调用OSTaskDel()删除自己。这样可以使系统中的任务数减少。在任务体中,任务可以调用uC/OS

CNN网络中卷积层的正向传播与反向传播理解

匿名 (未验证) 提交于 2019-12-03 00:19:01
在CNN网络模型是建立在传统神经网络结构上的,对于一个传统的神经网络其结构是这样的: 从上面可以看出,其模型是全连接的。若是使用一幅512*512大小的图像作为输入,隐层1中含有10000个神经元,那么在不算偏置项的情况下,权值参数的个数就是512*512*10000个,如此巨大的参数量不计较内存其优化也是比较困难的。 在此基础上学者推出了CNN网络模型,其较为经典的运用便是LeNet,下面是其结构展示: 可以从上图中看出,其网络结构中主要存在两个之前没有的成分: 卷积层(ConvNet)、池化层(PoolNet) 。对于上图中的卷积层C1可以看到它包含的是6个卷积核,每个卷积核的大小是5*5,因而其参数量是6*(5*5+1)。相比之前的传统神经网络在参数量上就小了很多。说道卷积其具体的含义就是对图像使用掩膜进行运算,与传统图像处理中的中值滤波、均值滤波有类似性,可以使用下图进行解释: 在上图中可以看到黄色的滑动窗口在图像矩阵中进行滑动,从而得到了最后的卷积结果。对于卷积之后图像的尺寸是有一个计算公式的,当下假设输入图像的尺寸 W H W H ,卷积核的尺寸为 W k H k W k H k ,填充用的 p a d d i n g = p p a d d i n g = p ,卷积的步长为 s t r i d e = s s t r i d e = s 。则生成的卷积结果尺寸 W

[转帖]AWR报告参数:DB TIME和DB CPU

匿名 (未验证) 提交于 2019-12-03 00:15:02
AWR报告参数:DB TIME和DB CPU http://blog.itpub.net/12679300/viewspace-1182396/ 一、前言: AWR报告是了解ORACLE运行的一个重要报告,CPU的使用情况是AWR报告的一个重要指标,本文档从单个CPU的维度去解读AWR报告; 二、重要参数介绍: DB Time:Amount of elapsed time (in microseconds) spent performing Database user-level calls. This does not include the elapsed time spent on instance background processes such as PMON. 说明: 所有前台 session 花费在 database 调用上的总和时间 ?注意是前台进程 foreground sessions ?包括 CPU 时间、 、和其他一系列非空闲等待时间,别忘了 cpu on queue time (思考DB TIME的定义为指定的是前台session ) DB CPU:Amount of CPU time (in microseconds) spent on database user-level calls. This does not include the CPU