![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
xiaomin_____
努力~~
展开
-
操作系统-虚拟内存
1. 虚拟内存术语虚拟内存程序引用内存使用地址与内存系统用于识别物理存储站点的地址是不同的,程序生成的地址会自动转换成机器指令。虚拟内存的大小收到寻址机制和可用的备用内存量的限制,而不受内存存储位置实际数量的限制。虚拟地址在虚拟内存中分配给某一位置的地址使该位置可以被访问,仿佛它是主内存的一部分。虚拟地址空间分配给进程的虚拟存储地址空间...原创 2016-04-07 10:00:19 · 131 阅读 · 0 评论 -
图解linux下top命令的使用
top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序。 top进入视图top视图 01【top视图 01】是刚进入top...原创 2017-08-04 10:09:05 · 103 阅读 · 0 评论 -
wireshark 访问Web,tcp传输全过程(三次握手、请求、数据传输、四次挥手)
从输入域名到最后呈现经历的过程:域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户 --> 四次挥手结束1.域名解析首先浏览器会...原创 2017-08-05 22:39:11 · 789 阅读 · 0 评论 -
Linux 性能监控
公司有个测试服务器,上面跑了几个应用和一个DB。 DB被这个几个应用使用。 最近老是被挂掉。 CPU 使用率100%。 搞到最后大家都不能用。 敲个命令都没反应。 TOP命令显示的是一些Oracle session占用CPU资源太多。 杯具的是在服务器上连sqlplus 都进不去了,命令都没反应。 只好把服务器重启了。 重启之后再看了一下,是一个同事测试的SQL 有问题。 ...原创 2017-08-06 15:25:00 · 109 阅读 · 0 评论 -
压力测试衡量CPU的三个指标:CPU Utilization、Load Average和Context Switch Rate
Linux下cpu使用率load average的简单理解 load average一般可以通过top或者uptime观察到,格式如下: load average: 0.10, 0.05, 0.58 分别代表了最近1分钟,5分钟,15分钟CPU的平均负载情况 如果是单核CPU的话,1.00就表示CPU已经满负荷了, 如果是多核CPU的话,load avera...原创 2017-08-06 15:25:26 · 209 阅读 · 0 评论 -
TCP的三次握手(建立连接)和四次挥手(关闭连接)
机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机)ACK(acknowledgement 确认)PSH(push传送)FIN(finish结束)RST(reset重置)URG(urgent紧急)Sequence number(顺序号码)Acknowledge nu...原创 2017-08-06 15:28:53 · 210 阅读 · 0 评论 -
TCP/IP状态图 && TIME_WAIT作用
摘要: TCP/IP状态图 && TIME_WAIT作用TCP/IP状态图 && TIME_WAIT作用在TCP/IP状态图中,有很多种的状态,它们之间有的是可以互相转换的,也就是说,从一种状态转到另一种状态,但是这种转换不是随便发送的,是要满足一定的条件。TCP/IP状态图看起来更像是自动机。下图即为TCP/IP状态。由上图可以看出,一共有11...原创 2017-08-07 09:55:22 · 134 阅读 · 0 评论 -
服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
来自:http://blog.csdn.net/shootyou/article/details/6622226 昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.csdn.net/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_W...原创 2017-08-07 09:56:04 · 108 阅读 · 0 评论 -
TCP连接的状态详解以及故障排查
我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。(总结网络上的内容)1、TCP状态 了解TCP之前,先了解几个命令: linux查看tcp的状态命令:1)、netstat -nat 查看TCP各个状态的数量2)、lsof -i:port 可以检测到打开套接字的状况3)、 sar -n SOCK 查看tcp创建的连接数4...原创 2017-08-07 10:01:18 · 163 阅读 · 0 评论 -
关于Nginx的一些优化(突破十万并发)
worker_processes 8;nginx进程数,建议按照cpu数目来指定,一般为它的倍数。worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu...原创 2017-08-07 10:01:45 · 79 阅读 · 0 评论 -
TCP/IP协议--TIME_WAIT状态存在的原因
1. 实际问题 初步查看发现,无法对外新建TCP连接时,线上服务器存在大量处于TIME_WAIT状态的TCP连接(最多的一次为单机10w+,其中引起报警的那个模块产生的TIME_WAIT约2w),导致其无法跟下游模块建立新TCP连接。 TIME_WAIT涉及到TCP释放连接过程中的状态迁移,也涉及到具体的socket api对TCP状态的影响,下面开始逐步介绍这些概念...原创 2017-08-03 17:48:38 · 113 阅读 · 0 评论 -
Linux系统下CPU使用(load average)梳理
在平时的运维工作中,当一台服务器的性能出现问题时,通常会去看当前的CPU使用情况,尤其是看下CPU的负载情况(load average)。要想获得服务器的CPU负载情况,有下面三种命令:123456789101112131415161718191)w命令[root@localhos...原创 2017-08-03 16:56:55 · 87 阅读 · 0 评论 -
操作系统--虚拟内存、逻辑地址、线性地址、物理地址
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段...原创 2016-04-07 10:03:13 · 139 阅读 · 0 评论 -
Linux 虚拟内存和物理内存的理解
首先,让我们看下虚拟内存: 第一层理解1. 每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构 2. 一 个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的 task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,哪...原创 2016-04-07 10:04:54 · 144 阅读 · 0 评论 -
(问答)50m带宽的实际速率是多少
最最关键的一点还是:所谓的2M带宽,其单位为小写的b(bit)而非大写的B(Byte)! ①你的带宽是2Mb 的。能达到200KB/S就是2Mb的口了。是他们的业务单子故意那样写的,你的网速慢的时候好回答你。0.5Mb带宽最快也就50KB/S ②50 / 8 = 6.2550M是接入速度,单位是bps(bit/秒) 而下载速度的单位是byte 1bit(比特)=8Byte...原创 2017-06-19 18:22:25 · 1674 阅读 · 0 评论 -
网络带宽和下载速度的换算方法
1.计算光纤传输的真实速度使用光纤连接网络具有传输速度快。衰减少等特点。因此很多公司的网络出口都使用光纤。一般网络服务商声称光纤的速度为“5M”,那么他的下载真实速度是多少那?我们来计算一下,一般的情况下,“5M”实际上就是5000Kbit/s(按千进位计算)这就存在一个换算的问题。Byte和bit是不同的。1Byte=8bit.而我们常说的下载速度都指的是Byte/s因此电信所说的“5M”经过...原创 2017-06-19 18:23:28 · 1573 阅读 · 0 评论 -
DNS 原理入门
一、DNS 是什么?DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。 举例来说,如果你要访问域名math.stackexchange.com,首先要通过DNS查出它的IP地址是151.101.129.69。 如果你不清楚为什么一定要查出IP地址,才能进行网络通信。二、查询过程虽然只需要返回一个...原创 2017-06-24 22:47:36 · 119 阅读 · 0 评论 -
TCP/IP详解:协议(UDP,广播和多播)
第11章:UDP:用户数据报协议UDP不提供可靠性TCP端口号由TCP来查看,UDP端口号由UDP来查看;TCP端口号与UDP端口号是相互独立的UDP首部 UDP校验和可选,覆盖UDP首部和UDP数据如果发送端没有计算检验和而接收端检测到检验和有差错,那么UDP数据报就要被悄悄地丢弃。不产生任何差错报文(当IP层检测到IP首部检验和有差错时也这样做)。不是所...原创 2017-07-03 10:10:56 · 233 阅读 · 0 评论 -
UDP 单播、广播和多播
阅读目录(Content)一、UDP广播 二、UDP多播1、多播(组播)的概念2、广域网的多播三、UDP广播与单播广播与单播的比较 使用UDP协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到...原创 2017-07-03 10:11:17 · 124 阅读 · 0 评论 -
理解Linux系统中的load average(图文版)
一、什么是load average?linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度。Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 ...原创 2017-08-03 16:46:22 · 112 阅读 · 0 评论 -
CPU利用率与Load Average的区别?
CPU利用率与Load Average的区别?CPU利用率,是对一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况,如果CPU被占用时间很高,那么就需要考虑CPU是否已经处于超负荷运作,长期超负荷运作对于机器本身来说是一种损害,因此必须将CPU的利用率控制在一定的比例下,以保证机器的正常运作。Load Average是 CPU的Load,它所包含的信...原创 2017-08-03 16:48:19 · 97 阅读 · 0 评论 -
磁盘IO单线程顺序写时最快的,如果多线程写,磁盘的磁头要不断重新寻址,所以写入速度反而会慢...
磁盘IO单线程顺序写时最快的,如果多线程写,磁盘的磁头要不断重新寻址,所以写入速度反而会慢(1) 读写最好还是不要多线程,硬盘读写的速度有限,单线程时已经满负荷了,多线程又会增加线程之间的切换,会增加时间。 如果想增加读写速度,应该增加硬盘,做raid(2)首先是硬盘的写入是串行的,CPU的计算才是并行的,如果你偏重计算那么多线程能提高,要不怎么叫做并行计算呢; ...原创 2017-08-12 08:32:43 · 876 阅读 · 0 评论 -
docker 使用网桥实现跨主机容器链接
基本思想:由于Docker容器通过docker0 网桥实现同一主机间中,容器的ip地址分配和访问,所以,如果希望Docker跨主机访问,最简单的方式就是将不同主机的docker0 设置为同一网段。 那么怎么实现跨主机呢?我这里将本机网卡也通过网桥来连接,那么,整体网络拓扑结构就是这样:但是通过这种桥接,所有网卡都要在一个网段下,所以要对每个Docker守护进程对ip的分...原创 2017-08-14 10:15:46 · 158 阅读 · 0 评论 -
Linux下的虚拟Bridge实现
Linux下的Bridge也是一种虚拟设备,这多少和vlan有点相似,它依赖于一个或多个从设备。与VLAN不同的是,它不是虚拟出和从设备同一层次的镜像设备,而是虚拟出一个高一层次的设备,并把从设备虚拟化为端口port,且同时处理各个从设备的数据收发及转发,再加上netfilter框架的一些东西,使得它的实现相比vlan复杂得多。1.Bridge的功能框图 它是Linux下虚拟出...原创 2017-08-14 10:16:01 · 102 阅读 · 0 评论 -
/bin/bash^M: bad interpreter: No such file or directory
<今天遇到的问题, 网上有很多类似的文章, 个人记录下来, 加深记忆, 已经明白的就绕路吧.> 执行一个脚本full_build.sh 时, 一直是提示我:-bash: ./full_build.sh: /bin/bash^M: bad interpreter: No such file or directory 开始是说我权限不够, 不能执行, 接着我...原创 2017-02-22 13:32:10 · 110 阅读 · 0 评论 -
lsblk命令
lsblk(列出块设备)命令用于列出所有可用块设备的信息,但是,它不会列出RAM盘的信息。块设备有硬盘,闪存盘,CD-ROM等等。 如何安装lsblklsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。这个包带了几个其它工具,如dmesg。要安装lsblk,请在此处下载util-linux包。 Fedora中安装lsblkFedora用...原创 2017-02-22 13:35:42 · 406 阅读 · 0 评论 -
/etc/resolv.conf 的更改在重启后丢失的解决办法
转自http://hi.baidu.com/iamcyh/blog/item/4cfa1c021e9630f208fa9300.html解决方法:在 /etc/sysconfig/network-scripts/ifcfg-eth<N> 文件中加入 PEERDNS 选项。<N>可以是 0, 1, 2 等等,代表不同网卡的配置文件。例如,系统上第一张网卡是eth0的...原创 2017-02-22 14:09:55 · 283 阅读 · 0 评论 -
VM 中Centos7 增加/目录容量
Xfs是CentOS7.0的默认文件系统类型,而不同文件系统类型对应的创建、检查、调整命令不同,要注意区分。调整Xfs分区大小(只能增大):lvextend -L 120G /dev/mapper/centos-root # 增大至120Glvextend -L +20G /dev/mapper/centos-root # 增加20Gxfs_growfs /dev/mappe...原创 2017-02-23 14:48:57 · 95 阅读 · 0 评论 -
CentOS7 LVM添加硬盘及扩容
对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一。因此这篇文章会通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重启您的生产服务器。关于扩充和增加新的磁盘到 Linux 系统,我们会提及多种方法和多种可行性,可按您所需选择最适用的一种。1. 在虚拟机客户端扩充磁盘空间:在为 Linux 系统增加磁盘卷之前,...原创 2017-02-23 16:22:22 · 244 阅读 · 0 评论 -
扩大VMware虚拟机中CentOS 7的硬盘空间
1. 查看挂载点信息:[root@localhost]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 18G 15G 2.9G 84% / devtmpfs 485M 0 485M 0% /dev tmpfs 494M 84K 494M 1% /dev/shm tmpfs 494M 7.1M 487M 2% /run tmpf...原创 2017-02-23 17:38:19 · 114 阅读 · 0 评论 -
服务管理--systemctl命令
http://my.oschina.NET/5lei/blog/191370 任务旧指令新指令使某服务自动启动chkconfig --level 3 httpd onsystemctl enable httpd.service使某服务不自动启动chkconfig --level 3 httpd offsystemctl disable http...原创 2017-02-28 14:38:21 · 125 阅读 · 0 评论 -
linux根文件系统 /etc/resolv.conf 文件详解
大家好,今天51开源给大家介绍一个在配置文件,那就是/etc/resolv.conf。很多网友对此文件的用处不太了解。其实并不复杂,它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。它的格式很简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数。re...原创 2017-03-02 13:39:57 · 108 阅读 · 0 评论 -
CentOS yum 源的配置与使用
CentOS yum 源的配置与使用 一、yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux...原创 2017-03-17 23:18:01 · 85 阅读 · 0 评论 -
yum install python-pip
在使用Docker的时候,有一个工具叫做 docker-compose,安装它的前提是要安装pip工具.1、首先检查Linux有没有安装Python-pip包,直接执行 yum install python-pip2、没有python-pip包就执行命令 yum -y install epel-release(3)、执行成功之后,再次执行yum install python...原创 2017-02-21 14:02:25 · 871 阅读 · 0 评论 -
Centos 配置eth0 提示Device does not seem to be present
一.故障现象:[root@c1node01 ~]# service network restartShutting down loopback insterface: [ OK ]Bringing up loopback insterface: ...原创 2017-02-21 11:08:10 · 83 阅读 · 0 评论 -
Linux下多线程查看工具(pstree、ps、pstack)
1. pstreepstree以树结构显示进程 $ pstree -p work | grep ad sshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) |-{ad_preprocess}(4553) ...原创 2017-08-28 11:06:03 · 154 阅读 · 0 评论 -
Linux LVM 的使用详解
摘要: Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如Patition Magic等),但这都只是暂时解决办法,没有根本解决问题。随着Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解,本文就深入讨论LVM技术,使得用户在无...原创 2017-10-08 10:28:23 · 118 阅读 · 0 评论 -
转载和积累系列 - Page cache和Buffer cache
Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。在Linux 2.6的内核中Page c...原创 2017-10-12 15:56:23 · 105 阅读 · 0 评论 -
Shell脚本中的return,exit 0,以及 父进程获取子进程的变量
1 Shell脚本中的return,exit 0 shell脚本中,一般在脚本的函数里面使用return语句,函数中使用return语句后,表示函数执行完毕,函数中return语句后面的代码将不再执行,同时脚本将继续执行函数后的代码。但是exit 0无论在脚本中,还是函数中,一旦使用,将退出整个shell脚本。 2 父进程获取子进程的变量: 1. 在A脚本中执行B脚本,可以让B脚本exit...原创 2017-10-25 11:29:39 · 297 阅读 · 0 评论 -
Shell脚本中引用、调用另一个脚本文件的2种方法
在Java,Python中,可以用import的方式来进行脚本或模块之间调用,例如: 复制代码代码如下:>>> import math >>> math.sqrt(4) 2.0 在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一: . ./subscript.sh 方法二: so...原创 2017-10-25 14:14:07 · 2573 阅读 · 0 评论