linux
shaofei_huai
这个作者很懒,什么都没留下…
展开
-
linux 5种IO模型
linux系统中,一切皆文件,在操作文件过程中使用不同操作模式会对性能造成极大影响。目前linux存在五种IO模型。同步阻塞IO 同步阻塞IO是最简单,最常用的模型,其流程为用户线程向内核空间发起调用,内核空间将数据准备好后返回到用户空间,在此过程中用户线程阻塞。同步非阻塞IO同步非阻塞IO是在同步阻塞IO的基础上,将socket设置为NONBLOCK。这样做用户线程可以在发起IO请求后可以立即返回,但用户线程需要不断循环获取内核处理结果...原创 2021-10-31 22:42:36 · 173 阅读 · 0 评论 -
centos7更换yum源
1.安装wgetyum install wget2.进入yum配置文件路径cd /etc/yum.repos.d/3.备份原有yum源mv CentOS-Base.repo CentOS-Base.repo.bak4.下载阿里yum源wget -O http://mirrors.aliyun.com/repo/Centos-7.repo5.更换阿里yum源为默认源mv Centos-7.repo CentOS-Base.repo6.更新本地缓存清原创 2021-09-04 15:48:37 · 144 阅读 · 0 评论 -
平均负载(load average)
一、平均负载基本概念平均负载是指单位时间内,系统处于R状态与D状态的平均进程数,与cpu使用率无关,进程状态可使用ps -aux查看。 平均负载理想状态下等于cpu个数,cpu个数可通过cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 查看,例如在2个cpu的机器上,平均负载为1,那么cpu有50%的空闲,当平均负载大于cpu个数时,表示系统出现过载,过载超过cpu数量70%时,需要排查负载过高问题。...原创 2021-07-31 23:48:29 · 9711 阅读 · 0 评论 -
centos7 安装升级gcc
gcc是linux下的编译器,可以编译C, C++, Objective-C, Fortran, Java,等语言,有些软件需要make install安装,gcc版本太低会安装失败。由于手动下载源码安装比较麻烦,本文使用scl软件集安装gcc。1.安装sclyum install centos-release-scl2.官网查看gcc版本http://www.gnu.org/software/gcc/3.安装devtoolse,9可以替换为gcc官网版本,安装完可在 /...原创 2021-07-31 21:37:44 · 807 阅读 · 0 评论 -
maven 私服 nexus3.X 基于docker安装使用
nexus安装包太难下了,根本下不下来,本文基于docker安装。1.搜索nexus镜像:docker search nexus2.拉取镜像:docker pull sonatype/nexus33.查看是否拉取成功:docker images4.启动镜像后台运行:docker run -d -p 8081:8081 0ebd6cc0ce56。5.查看镜像是否启动成功:docker ps |grep 0ebd6cc0ce56,如果没启动成功可使用docker ...原创 2021-07-21 20:54:22 · 2459 阅读 · 0 评论 -
zookeeper 单机集群搭建
1.官网下载zk安装包https://zookeeper.apache.org/2.登录服务器创建三个zk文件夹,创建zkmkdir zookeeper2181mkdir zookeeper2182mkdir zookeeper21833.分别在每个文件夹中上传安装包后解压4.原创 2021-07-22 21:05:52 · 2453 阅读 · 1 评论 -
centos7 安装git
1.查看git是否存在git --version2.删除原有git:yum remove git3.下载安装包https://git-scm.com/downloads/4.将安装包上传至服务器 /data目录下5.解压安装包tar -zxvf git-2.32.0.tar.gz6.创建存放git文件夹cd /datamkdir git7.安装所需依赖不安装会提示没有openssl/ssl.hyum -y install curl-devel ...原创 2021-07-31 15:33:46 · 420 阅读 · 0 评论 -
linux swap开启、关闭、监控
linux中swap类似win的虚拟内存,当物理内存不足时会把进程暂时不用的内存放入磁盘,进程再次访问这些内存时从磁盘中取出来,解决内存不足的问题。swap触发条件 1.大块内存分配请求 2.kswapd0定期扫描,查看内存是否紧张,内存紧张时进行回收。具体回收条件可通过cat /proc/sys/vm/min_free_kbytes查看页最小阈值(pages_min),其中页最小阈值(pages_low)=pages_min*5/4,和页高阈值(pa...原创 2021-07-20 17:41:32 · 5418 阅读 · 0 评论 -
linux内存基本概念
一、内存映射 linux内核为每个进程提供一个独立的虚拟内存,在使用时通过内存映射将虚拟内存地址映射到物理内存地址。内存映射主要是内核维护一个映射表,记录虚拟内存地址与物理内存地址的映射关系。 映射表存储在cpu的mmu...原创 2021-07-19 20:20:52 · 1857 阅读 · 0 评论 -
cpu上下文切换
现阶段操作系统可同时执行多个任务,但这些任务并不是同时执行,系统在很短的时间内将cpu轮流分配给每个任务,由于任务轮流执行依赖于cpu寄存器和程序计数器,通过它们暂存指令,数据和地址,以及程序运行的下一条地址,因此也被称为cpu上下文。 cpu上下文切换就是把上一个任务的cpu上下文保存起来,然后加载新任务的上下文到寄存器与程序计数器,加载完成后跳转到程序计数器所指的新位置,运行新任务。被保运起来的上下文会存储在系统内核中,并在任务执行时再次加载进来。 c...原创 2021-07-09 23:03:45 · 1838 阅读 · 1 评论 -
linux处理僵尸进程
一、进程状态 R:在cpu就绪队列中,正在运行或等待运行的进程D:不可中断进程,一般表示进程正在与硬件交互,交互过程不允许被其他进程中断Z:僵尸进程,该类型进程已经结束,但父进程还没回收其资源S:进程因为等待某个事件而被系统挂起。当进程等待的事件发生时,它会被唤醒并进入 R 状态T:进程处于暂停或者跟踪状态,向一个进程发送SIGSTOP信号,该进程会变成暂停状态,再向其发送SIGCONT信号,进程会恢复运行X:进程已经消亡二,僵尸进程处理1.top中zombie大于0时...原创 2021-07-08 22:45:39 · 5013 阅读 · 0 评论 -
jstack排查java程序占用cpu过高问题
jstack为java自带的线程堆栈分析工具,通过该命令可查看java程序线程堆栈信息1.top找到对应pid 2. top -Hp 21791查看该进程下各线程情况3.printf "%x\n" 21880将进程id转为16进制4.jstack 21791 |grep 5578 -A 20直接定位问题代码或使用jstack 21791 >>xx.txt导出搜索...原创 2021-07-07 22:52:00 · 2344 阅读 · 0 评论 -
接口压测工具ApacheBench(ab)基本使用
通过yum -y install httpd-tools安装安装完成后输入ab查看基本命令常用参数:-n:总请求次数-c:并发次数需小于总请求次数;-p:post 参数文档路径配合-T使用-T:header 头内容类型get请求:ab -c 10 -n 100 https://xxxx?param=11post请求:ab -n 100 -c 10 -p 'post.txt' -T application/json https://xxx,通过-T指定Content-Ty..原创 2021-07-07 15:18:26 · 2632 阅读 · 0 评论 -
linux压测工具stress安装使用
https://fossies.org/linux/privat/stress-1.0.4.tar.gz/链接:https://pan.baidu.com/s/14Y23d7aYTo4AIDRqPlzGzg提取码:sxmf下载后上传到linux解压进入stress下,依次执行./configuremakemake checkmake installmake clean安装完成后可使用stress --help 查看stress用法-t --timeout ...原创 2021-07-06 20:20:37 · 2896 阅读 · 0 评论