cpu参数

Linux服务器性能评估

随声附和 提交于 2020-02-24 09:57:58
一、影响 Linux服务器性能的因素 1. 操作系统级 CPU 内存 磁盘 I/O带宽 网络 I/O带宽 2. 程序应用级 二、系统性能评估标准 影响性能因素 影响性能因素 评判标准 好 坏 糟糕 CPU user% + sys%< 70% user% + sys%= 85% user% + sys% >=90% 内存 Swap In(si)=0Swap Out(so)=0 Per CPU with 10 page/s More Swap In & Swap Out 磁盘 iowait % < 20% iowait % =35% iowait % >= 50% 其中: %user:表示CPU处在用户模式下的时间百分比。 %sys:表示CPU处在系统模式下的时间百分比。 %iowait:表示CPU等待输入输出完成时间的百分比。 swap in:即si,表示虚拟内存的页导入,即从SWAP DISK交换到RAM swap out:即so,表示虚拟内存的页导出,即从RAM交换到SWAP DISK。 三、系统性能分析工具 1.常用系统命令 Vmstat、sar、iostat、netstat、free、ps、top等 2.常用组合方式 • 用vmstat、sar、iostat检测是否是CPU瓶颈 • 用free、vmstat检测是否是内存瓶颈 • 用iostat检测是否是磁盘I/O瓶颈 •

云上战“疫”背后:快杰云主机的技术担当

风格不统一 提交于 2020-02-21 10:17:29
新冠肺炎催生了办公、医疗、教育等行业的“线上解决”,加速了各行业与“云”的结合,也对不少服务企业提出了新的考验:持续攀登的高并发、多连接,需要更加高性能稳定的云平台支撑,确保不宕机、不卡断以及流畅稳定的云上体验。 在这场战“疫”中,UCloud快杰云主机历经了多项考验,在计算、网络、存储各方面均具备优异性能。其中,为了响应“停课不停学”的号召,快杰云主机为小禾科技线上教育直播平台提供了高性能稳定的云资源支持,同时UCloud还免费提供直播带宽和流量等资源,保障高并发场景下直播平台及课程的顺利进行。 快杰云主机的优异表现依托于产品的技术优化,来看一组快杰云主机的配置参数: 搭载Intel最新Cascade Lake CPU、NVMe SSD硬盘、25G RDMA网络,并通过最新的智能网卡提供硬件卸载。 在这其中,每一项参数优化均经历了诸多思路重建、革旧换新的技术更迭。 下面我们就来聊聊快杰云主机的“破局”之路。 一、存储“破局” 快杰云主机搭载的NVMe SSD硬盘,采用64层3DNAND,支持8TB/s高速TRIM。支持性能出色的同时,NVMe SSD硬盘通过动态精确能耗控制,能源效率也比前代提升38%。 国内专业云资源选型服务平台 CloudBest 实验室的报告中( 阿里云、腾讯云、UCloud 、华为云云主机对比测试报告 ),关于 “磁盘性能” 的测试结果如下: 图

Go语言goroutine调度器初始化(12)

浪子不回头ぞ 提交于 2020-02-21 08:21:12
本文是《Go语言调度器源代码情景分析》系列的第12篇,也是第二章的第2小节。 本章将以下面这个简单的Hello World程序为例,通过跟踪其从启动到退出这一完整的运行流程来分析Go语言调度器的初始化、goroutine的创建与退出、工作线程的调度循环以及goroutine的切换等重要内容。 package main import "fmt" func main() { fmt.Println("Hello World!") } 首先我们从程序启动开始分析调度器的初始化。 在分析程序的启动过程之前,我们首先来看看程序在执行第一条指令之前其栈的初始状态。 任何一个由编译型语言(不管是C,C++,go还是汇编语言)所编写的程序在被操作系统加载起来运行时都会顺序经过如下几个阶段: 从磁盘上把可执行程序读入内存; 创建进程和主线程; 为主线程分配栈空间; 把由用户在命令行输入的参数拷贝到主线程的栈; 把主线程放入操作系统的运行队列等待被调度执起来运行。 在主线程第一次被调度起来执行第一条指令之前,主线程的函数栈如下图所示: 了解了程序的初始状态之后,下面我们正式开始。 程序入口 在Linux命令行用 go build 编译hello.go,得到可执行程序hello,然后使用gdb调试,在gdb中我们首先使用 info files 命令找到程序入口(Entry point

Starting from fork(...)

纵然是瞬间 提交于 2020-02-21 04:48:55
作为计算机程序的基本单位,一切五花八门,新奇古怪的程序都源于一个fork。亚当夏娃之后,人类繁衍生息便出现了社会,fork繁衍生息之后便出现了windows,或者Linux,又或者你手中的iPhone5,双卡双待,大屏加超长待机,还有标配的炫酷铃声——《爱情买卖》。 fork不是一个C函数,而是一个系统调用。c通常是用户层的语言,比如简单的加减法,若要解决复杂的问题,比如申请一段内存,开多进程,这显然不是c 能办到的,或者你也不知如何实现这样一个函数。不同的操作系统有自己的标准,亦有自己定义的API,fork一个进程更不会是一套相同的代码。这种C自己办不到的事情,只能量力而行,通知系统(内核)帮自己处理下咯,内核处理好,将结果返回给c,这便是合作的道理。 创建一个进程 #include <unistd.h>pid_t fork(void); 系统调用的过程 --> 应用程序函数,也就是上面的pid fork(void) --> libc里的封装例程 , 向内核发送系统调用号 --> 系统调用处理函数,接收到系统调用号,通过sys_call_table找到相应服务例程地址 /* 0 */ CALL(sys_restart_syscall) CALL(sys_exit) CALL(sys_fork_wrapper) //--> CALL(sys_read) CALL(sys_write

hive数据导入导出

前提是你 提交于 2020-02-20 06:40:09
Hive数据导入导出的几种方式 一,Hive数据导入的几种方式 首先列出讲述下面几种导入方式的数据和hive表。 导入: 本地文件导入到Hive表; Hive表导入到Hive表; HDFS文件导入到Hive表; 创建表的过程中从其他表导入; 通过sqoop将mysql库导入到Hive表;示例见《通过sqoop进行mysql与hive的导入导出》和《定时从大数据平台同步HIVE数据到oracle》 导出: Hive表导出到本地文件系统; Hive表导出到HDFS; 通过sqoop将Hive表导出到mysql库; Hive表: 创建testA: CREATE TABLE testA ( id INT , name string , area string ) PARTITIONED BY ( create_time string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE ; 创建testB: CREATE TABLE testB ( id INT , name string , area string , code string ) PARTITIONED BY ( create_time string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',

Linux服务器优化

风格不统一 提交于 2020-02-19 16:33:25
1 cpu性能查看 1、查看物理cpu个数: cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 2、查看每个物理cpu中的core个数: cat /proc/cpuinfo | grep "cpu cores" | wc -l 3、逻辑cpu的个数: cat /proc/cpuinfo | grep "processor" | wc -l 物理cpu个数*核数=逻辑cpu个数(不支持超线程技术的情况下) 1.2 内存查看 1、查看内存使用情况: #free -m total used free shared buffers cached Mem: 3949 2519 1430 0 189 1619 -/+ buffers/cache: 710 3239 Swap: 3576 0 3576 total:内存总数 used:已经使用的内存数 free:空闲内存数 shared:多个进程共享的内存总额 buffers/cache:(已用)的内存数,即used-buffers-cached buffers/cache:(可用)的内存数,即free+buffers+cached Buffer Cache用于针对磁盘块的读写; Page Cache用于针对文件inode的读写,这些Cache能有效地缩短I/O系统调用的时间

Kubernetes Resource Qoutas

ε祈祈猫儿з 提交于 2020-02-19 04:12:22
配置参数: spec.containers[].resources.limits.cpu spec.containers[].resources.limits.memory spec.containers[].resources.requests.cpu spec.containers[].resources.requests.memory 限制Pod CPU和Memory apiVersion: apps/v1 kind: Deployment metadata: name: tomcat spec: replicas: 3 selector: matchLabels: name: tomcat template: metadata: labels: name: tomcat spec: containers: - name: tomcat image: kubeguide/tomcat-app:v1 ports: - containerPort: 8080 env: - name: MYSQL_SERVICE_HOST value: "mysql" - name: MYSQL_SERVICE_PORT value: "3306" resources: requests: # 内存没什么好解释的, 单位 Mi Gi memory: 64Mi # 千分之一的CPU配额为最小单位

转载:深度学习电脑配置

喜欢而已 提交于 2020-02-18 07:15:50
半夜睡不着,想谈谈自己对深度学习主机配置的一些经验,想自己diy深度学习硬件的朋友可以参考一下,因为本人也不是特别资深的电脑diy爱好者,所以很多地方也是一知半解,有错误请大家指正。首先我会谈几点必须注意的事项;然后我阐述一些配件选择的原则,因为硬件更新是很快的;最后会给出一下当下的配置清单。下面我们步入正题。 配置深度学习主机的注意事项: 1.一定计算好需要多大功率的电源!我们配置深度学习主机最核心的就是显卡,GPU的功耗往往很大,尤其我们经常使用两块以上的显卡。因此电源功率很重要,这是我们主机稳定工作的保障,我看到很多服务器甚至会选择双电源,但是我自己没有试过,不是很清楚双电源。 2.双显卡以上时必须注意处理器和主板的选择。如果是双显卡以上,那么pcie就面临是工作在x16还是x8的状态,这里应该是说带宽。我们在选择CPU是就要关注他们的pcie通道数,通道数大约40条以上两个GPU才会都工作在x16状态。另外可以选择双CPU的主板,这样就可以支持两个甚至更多的GPU工作在x16状态。 3.使用m.2固态硬盘时注意是否影响GPU工作在x16状态。这点也是个第二点有关的,就是pcie的通道资源是有限的,有的主板会写你使用m.2的固态会占用谁的资源,导致那个接口不能用。所以我一般会用sata那种接口。不过通道多的一般没什么影响,还是要看一下主板说明。 硬件选择原则 1.GPU选择

CPU的选配,怎么看综合性能和性价比(任务7)

情到浓时终转凉″ 提交于 2020-02-18 00:25:08
关于CPU的选择很多人是有误区的,第一个问题自然是选择Intel还是AMD? 不要相信江湖上的流言蜚语,要看专业机构的测试,AMDCPU性价比更高!没办法,起步晚,一直在追赶,从来没超越。可是,一般人群的应用,不涉及到太高端的技术性能。 所以,选择两者从技术性能层面和品质层面,没有太大的区别! 对此,更应该关注,看综合性能? 还是性价比? 首先,要弄清你的应用需求,然后在比较做决定。 当然一些专业测试机构的数据更加准确,有参考价值,可是对于家用电脑的选择,看这些往往会很难取舍。 因此大家还要参考官网给出的性能参数。 怎么看? 第一件事看架构,采用新架构更高效,功耗会下降,应用更多新技术,有效提升用户体验。选新不选旧,但是最好这款经过市场半年的考验,该打的补丁,都打完了。 出手前,先看应用评价。因为,往往有些人,喜欢尝试最新的产品,他们的意见是宝贵的,甚至是专业的。 第二件事,同架构产品中,比较核心数,线程数。往往一个系列中,核心数多,线程数多,更重要。 第三件事,看主频和动态加速频率。主频是能力,动态加速频率是潜力! 第四件事,看缓存!用来调节和匹配CPU与内存条的速度,缓存是越大越好。当然,价格更好,不过应用体验更诱人。 第五件事,看制作工艺和功耗。工艺说明制作技术,自然工艺越小,品质越高。功耗要横向看,高功耗代表高性能,同时也会面临散热需求。 第六件事,总线规格

性能优化-CPU上下文

泄露秘密 提交于 2020-02-17 19:10:27
CPU上下文:CPU中的寄存器和程序计数器。切换出的CPU上下文,会保存到linux系统内核中。 分为3种:1、进程上下文,2、线程上下文,3、中断上下文(硬件通过触发信号,导致中断处理程序运行)。 进程的运行空间:内核空间、用户空间。 内核空间:具有最高权限,可以直接访问所以资源,包括硬件。 用户空间:只有有限资源,不能访问包括内存在内的硬件只有,必须通过系统调用嵌入到内核中,才可以调用这些资源。 从用户态到内核态,是通过系统调用实现的。比如我们要查看一个文件的内容,需要 1、调用系统调用open打开一个磁盘文件, 2、read读取一个文件内容, 3、write输入到标准输入, 4、close关闭文件。 一、 执行系统调用,也是需要切换CPU上下文的。需要先保存CPU上下文的当前状态,然后加载系统调用的上下文,再然后跳转到内核态,执行内核任务。 系统调用完成,需要保存CPU现在的上下文状态,加载上次新的上下文状态,进入用户态,执行。 一次系统调用,发生了2次CPU上下文切换。 系统调用,一直是在同一个进程中运行的。 二、 进程上下文切换 进程切换只能在内核态中运行。进程切换不只切换虚拟内存、栈、全局变量等用户空间资源,也包括内核堆栈、等内核态资源。 保存上下文和恢复上下文,也不是免费操作,需要内核占用CPU运行,进行切换。 如果进程切换太频繁