
linux
JackLiu16
stay hungry,stay young!
展开
-
CPU节能模式导致linux操作系统宕机的解决办法
有台HP DL380 G6服务器,安装有redhat linux as5.6 64位操作系统,安装好操作系统后,服务器有时出现宕机现象,每次重启后都恢复正常,经查看日志发现有CPU frequency相关的信息,根据该信息可以看出CPU不支持频率调整,需要设置“CPUFREQ_ENABLED=no”和“SUSPEND2RAM_FORCE=yes”的参数。经过分析可以看出宕机现象是由服务器上CP...转载 2019-10-07 10:32:19 · 4383 阅读 · 0 评论 -
Linux-手动释放缓存(Buffer、Cache)
/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对 当前kernel的行为做出调整。那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。操作如下:[root@server test]# cat /proc/sys/vm/drop_caches0首先,/proc/sys/...转载 2019-03-03 22:05:03 · 1193 阅读 · 0 评论 -
【linux】进程优先级、nice系统中的nice值和nice time,top中的PR和ps中的PRI
出处:https://blog.csdn.net/u010317005/article/details/80531985linux内核目前实现了6中调度策略(即调度算法), 用于对不同类型的进程进行调度, 或者支持某些特殊的功能,其中SCHED_NORMAL和SCHED_BATCH调度普通的非实时进程, SCHED_FIFO和SCHED_RR和SCHED_DEADLINE则采用不同...转载 2019-03-03 12:34:24 · 1731 阅读 · 0 评论 -
Linux下回收子进程wait函数和waitpid函数的基本使用
1. 孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程变为init进程 。2. 僵尸进程:子进程终止了,父进程尚未回收子进程,子进程残留资源(PCB)存放于内核中,子进程变成僵尸(Zombie)进程。问:那为什么子进程要把PCB残留在内核里呢?答:因为子进程终止后,它会把终止信号等退出状态(不管正常终止还是异常终止都对应一个信号)保存在内核的PCB里面,只有这个...原创 2019-03-03 00:48:00 · 1545 阅读 · 0 评论 -
多线程—线程的5种状态
总结:1、sleep(),wait(),join()主动睡眠wait(),join()主动等待是程序主动交出控制给系统2、进行io时,被同步块阻塞是程序被动交出控制给系统出处:https://www.cnblogs.com/domi22/p/8046851.html线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。...转载 2019-03-03 00:29:24 · 2031 阅读 · 0 评论 -
Linux的进程优先级NI和PR到底有什么区别
总结:所有进程优先级范围:0~139实时进程:0~99 可以通过chrt调整设置查看非实时进程(用户进程):100~139 可以通过nice,renice调整-20~19top中的PR表示优先级,但是跟上述的值不是直接对等的。在top中,实时优先级的[0,99]没有具体的表示,统一用RT来表示。而静态优先级和top中的优先级关系为top_PR = static_Prior...转载 2019-03-03 00:18:23 · 2211 阅读 · 0 评论 -
python
总结:1、从下面的分析中可知,进程内存包括链接其他库的“共享内存”,要节约内存,就需要使用“共享内存“的进程或线程越多,把“共享内存”中“内存页”考到,进程或线程的私有内存空间操作越少。2、但是Linux内核具有一种称为写入时复制(Copy-on-Write,CoW)的机制,用作fork 进程的优化。3、而python中对象结构体PyObject有一个元素记录对象应用计数,每次我们读...转载 2019-03-02 21:08:05 · 707 阅读 · 0 评论 -
logrotate简单实现各种日志自动轮转
LINUX 系统自带的logrotate 功能 很方便 的就实现了将各种日志按一定的规则进行轮转,减少了人工删除干预,比较省心。配置文件路径:/etc/logrotate.conf若无此文件 ,请核查软件包 logrotate是否安装配置方法:1、 在 /etc/logrotate.conf 中添加要轮转的日志名,若多个日志采用同一规则可按下面方法/opt/app/logs/...转载 2018-12-11 18:04:31 · 1112 阅读 · 0 评论 -
CentOS查看yum的日志和历史记录
CentOS查看yum安装软件日志的方法:tail /var/log/yum.log查看yum使用的历史记录的方法:yum history info出处:https://blog.csdn.net/zsg88/article/details/75206176?locationNum=1&fps=1...转载 2018-12-04 23:23:40 · 2225 阅读 · 0 评论 -
linux virt-manager vncserver 安装
出处:https://www.centos.bz/2018/02/centos7-4%E5%AE%89%E8%A3%85kvm%E8%99%9A%E6%8B%9F%E6%9C%BA%EF%BC%88%E4%BD%BF%E7%94%A8virt-manager%E7%AE%A1%E7%90%86%EF%BC%89/本地Xming要先启动 出处:https://www.linuxidc.c...转载 2018-12-04 23:22:17 · 5012 阅读 · 0 评论 -
任务,任务的切换,(TCB)
task进程有任务的五种状态:休眠的状态,就绪的状态,运行的状态,中断的状态,挂起的状态。进程阻塞,状态切换,cpu时间分片给task。把process状态由running侧换为挂起,先把running的task在cpu中的数据复制出来保存到任务队列中,等待状态切换为running的时候使用1、用户级线程把整个线程实现部分放在用户空间中,内核对线程一无所知,内核看到的就是...转载 2018-11-27 11:29:50 · 2755 阅读 · 0 评论 -
linux多线程环境下的抢尸行为(system返回-1:No child processes)
#!/usr/bin/env python#coding:utf8import osimport timepid = os.fork()if pid: print 'in parent.sleepin....' while True: print "{}:{}".format("rece from ",os.waitpid(-1,1)) ...转载 2018-11-01 16:03:49 · 5456 阅读 · 0 评论 -
python清理子进程机制剖析
python的机制会自动清理已经完成任务的子进程的,下面通过本文给大家分享python清理子进程机制剖析,需要的朋友参考下吧起步在我的印象中,python的机制会自动清理已经完成任务的子进程的。通过网友的提问,还真看到了僵尸进程。import multiprocessing as mpimport osimport timedef pro(): print ("os.pid ...转载 2018-11-01 15:10:05 · 1100 阅读 · 0 评论 -
Linux查看某个进程的线程
#coding=utf-8from flask import Flaskimport os,timeimport threadingapp = Flask(__name__)@app.route("/")def login(): return "test"def wait_son(test): while True: print testif...转载 2018-10-31 20:54:33 · 448 阅读 · 0 评论 -
共享内存,管道,socket等进程间通信方式的优缺点
(共享内存,管道,socket)分布式:socket是进程间通信唯一选择进程间通信的方式有很多,常见的有信号,信号量,消息队列,管道,共享内存,和socket等,这里我们主要讨论管道,共享内存,和socket,其他的比较简单只做简单的介绍。信号:信号主要用于通知某个进程发生了什么事,就像你打电话通知某个人某件事一样,事先注册号信号相应的注册函数就可以了。信号量:信号量实际上是一个计数器...转载 2018-10-29 17:58:34 · 3876 阅读 · 0 评论 -
Linux下的进程通信方式: 管道通信详解
管道是单向的、先进先出的、无结构的字节流,它把一个进程的输出和另一个进程的输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。管道提供了简单的流控制机制。进程试图读一个空管道时,在数据写入管道前,进程将一直阻塞。同样,管道已经满时,进程再试图写管道,在其它进程从管道中读走数据之前,写进程将一直阻塞。匿名管道具有的...转载 2018-10-29 17:39:24 · 521 阅读 · 0 评论 -
Linux下创建进程的三种方式及特点
在Linux中主要提供了fork、vfork、clone三个进程创建方法。 在linux源码中这三个调用的执行过程是执行fork(),vfork(),clone()时,通过一个系统调用表映射到sys_fork(),sys_vfork(),sys_clone(),再在这三个函数中去调用do_fork()去做具体的创建进程工作。 fork fork创建一个进程时,子进程只是完全复制父进程...转载 2018-10-26 14:26:27 · 354 阅读 · 0 评论 -
linux管理进程的链表
linux2.6.11的内核中,为了方便管理linux的进程,主要建了5种linux链表。每个链表节点之间的互联有两种方式,一种是hash节点之间的互联,通过hlist_node的数据结构来实现;另一种就是list_head类型的数据结构来互联。看linux内核的人对这两种类型的数据结构肯定是不会陌生的,因为它们在linux内核中无处不在。1 进程直接的互连 通过任务描述符结构tas...转载 2018-10-26 14:13:11 · 563 阅读 · 0 评论 -
linux中fork()函数详解
一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程...转载 2018-10-26 13:33:45 · 209 阅读 · 0 评论 -
linux命令--truncate 学习
truncate命令可以将一个文件缩小或者扩展到某个给定的大小 可以利用该命令和-s选项来特别指定文件的大小转载:http://linux.51yip.com/search/truncate 具体用法 例子演示 出处:https://blog.csdn.net/u010709783/article/details/77896017...转载 2018-10-25 15:18:36 · 982 阅读 · 0 评论 -
CentOS:ECDSA host key "ip地址" for has changed and you have requested strict checking(转)
原文地址:http://blog.csdn.net/ausboyue/article/details/52775281Linux SSH命令错误:ECDSA host key "ip地址" for has changed and you have requested strict checking.记录下方便记忆。解决方案:在终端上输入以下命令:ssh-keygen -R "你的远程...转载 2018-10-23 09:43:54 · 437 阅读 · 0 评论 -
进程通信-----管道通信
常用的进程间通信方式 :传统的进程间通信方式 无名管道(pipe)、有名管道(fifo)和信号(signal)System V IPC对象 共享内存(share memory)、消息队列(message queue)和信号灯(semaphore)BSD 套接字(socket)对于本文,我将重点的讲讲对无名管道和有名管道的理解。无名管道:无名管道是半...转载 2018-10-22 01:03:36 · 135 阅读 · 0 评论 -
安装centos 7的时候出现An Unknown Error Has Occurred
提示“An Unknown Error Has Occurred”,detail info最上面的那行,大概是提示exception “/usr/lib64/python2.7/site-packages/pyanaconda/bootloader.py”。出现这个信息时,可能是你的硬盘里面有些raid的数据,与安装程序发生了冲突,你要把你的硬盘格式化掉,一般可以用diskgenius工具,这个工...转载 2018-09-28 13:51:43 · 7659 阅读 · 1 评论 -
线程的堆和栈
linux下一个进程中的所有线程共享该进程的地址空间,但它们有各自独立的(私有的)栈(stack)。堆(heap)的分配与栈有所不同,一般是一个进程有一个C运行时堆,这个堆为本进程中所有线程共享。(一个进程下的所有线程有自己独立的栈,但是堆是共享进程的堆)堆: 是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程初始化的时候分配,运行过...转载 2018-09-10 22:57:25 · 7658 阅读 · 0 评论 -
DRBD(一) DRBD详解 及 DRBD配置
出处:https://blog.csdn.net/tjiyu/article/details/52723125 在前面《高可用集群》认识高可用集群的一些基本概念,在《heartbeat v2 crm 及 NFS共享存储的mysql高可用集群》等文章全面认识了用heartbeat v2 配置高可用集群,以及在《corosync pacemaker 配置高可用集群》识别了corosy...转载 2018-09-04 20:57:19 · 6045 阅读 · 0 评论 -
Centos7 drdb
一、DRBD简介 DRBD的全称为:Distributed ReplicatedBlock Device(DRBD)分布式块设备复制,DRBD是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。你可以把它看作是一种网络RAID。它允许用户在远程机器上建立一个本地块设备的实时镜像。1.1、DRBD是如何工作的呢? (DRBD Primary)负责接收数据,...转载 2018-09-04 20:49:12 · 533 阅读 · 0 评论 -
Linux下高可用群集之corosync+openais+pacemaker+web+drbd
项目拓扑图:corosync 具体配置:1.配置IP setup2.保证名称你能够相互解析:uname –r 必须相同[root@www1 ~]# uname -rn www1.gjp.com 2.6.18-164.el5www1.gjp.com上的配置:[root@gjp99 ~]# cat /etc/sysconfig/network NETWORK...转载 2018-09-04 20:32:02 · 2807 阅读 · 0 评论 -
Linux命令之hwclock - 查询和设置硬件时钟
本文链接:http://codingstandards.iteye.com/blog/804830 (转载请注明出处)用途说明hwclock命令,与clock命令是同一个命令,主要用来查询和设置硬件时钟(query and set the hardware clock (RTC))。RTC=Real Time Clock,也就是硬件时钟。在Linux中有硬件时钟与系统时钟等两种时钟。硬...转载 2018-09-04 20:17:58 · 460 阅读 · 0 评论 -
Linux并发与同步
进程中 线程堆栈 程序控制权 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 典型的UNIX系统都支持一个进程创建多个线程(thread)。在Linux进程基础中提到,Linux以进程为单位组织操作,Linux中的线程也都基于进程。尽管实现方式有异于其它的UNIX系统,但Li...转载 2018-08-31 01:03:35 · 167 阅读 · 0 评论 -
python并发编程之多进程、多线程、异步和协程
一、多线程 多线程就是允许一个进程内存在多个控制权,以便让多个函数同时处于激活状态,从而让多个函数的操作同时运行。即使是单CPU的计算机,也可以通过不停地在不同线程的指令间切换,从而造成多线程同时运行的效果。 多线程相当于一个并发(concunrrency)系统。并发系统一般同时执行多个任务。如果多个任务可以共享资源,特别是同时写入某个变量的时候,就需要解决同步的问题,比如多线程火车售...转载 2018-08-31 00:53:05 · 213 阅读 · 0 评论 -
python IO 多路复用 select poll epoll
epoll解决每次都要遍历检测所有fd是否可用,效率低的问题。对于第三个缺点,epoll的解决方法不像select和poll每次对所有fd进行遍历轮询所有fd集合,而是在注册新的事件时,为每个fd指定一个回调函数,当设备就绪的时候,调用这个回调函数,这个回调函数就会把就绪的fd加入一个就绪表中。(所以epoll实际只需要遍历就绪表)。 select select 原理sel...转载 2018-08-31 00:28:43 · 272 阅读 · 0 评论 -
聊聊C10K问题及解决方案
1 C10K问题大家都知道互联网的基础就是网络通信,早期的互联网可以说是一个小群体的集合。互联网还不够普及,用户也不多。一台服务器同时在线100个用户估计在当时已经算是大型应用了。所以并不存在什么C10K的难题。互联网的爆发期应该是在www网站,浏览器,雅虎出现后。最早的互联网称之为Web1.0,互联网大部分的使用场景是下载一个Html页面,用户在浏览器中查看网页上的信息。这个时期也不存在C1...转载 2018-08-31 00:11:18 · 216 阅读 · 0 评论 -
Linux 下的五种 IO 模型详细介绍
概念说明用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。针对linux操作系...转载 2018-08-30 17:20:52 · 268 阅读 · 0 评论 -
supervisor管理进程工具配置
https://blog.csdn.net/xyang81/article/details/51555473http://blog.51cto.com/xuding/1730952https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00140262673295076f525a...转载 2018-08-29 17:38:46 · 349 阅读 · 0 评论 -
报错kernel:NMI watchdog: BUG: soft lockup - CPU#0 stuck for 26s
近期在服务器跑大量高负载程序,造成cpu soft lockup。如果确认不是软件的问题。解决办法:#追加到配置文件中echo 30 > /proc/sys/kernel/watchdog_thresh #查看[root@git-node1 data]# tail -1 /proc/sys/kernel/watchdog_thresh30#临时生效sysctl ...转载 2018-08-24 14:09:28 · 12008 阅读 · 2 评论 -
在shell中如何判断字符串是否为有效的IP地址
正则表达 /b单词边缘 /B非单词边缘在shell中如何判断字符串是否为有效的IP地址_echoisecho_新浪博客http://blog.sina.com.cn/s/blog_53a844e50100xxus.html近来需要写个小shell判断用户输入的字符串是否为有效的ip地址,简单排除了以下几种情况:1. 以点号为分隔的域不等于4或6;2. 出现字符;3. 某域以...转载 2018-08-15 19:41:23 · 6322 阅读 · 3 评论 -
IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别(百度)
如果面试问到IO操作,这篇文章提到的问题,基本是必问,百度的面试官问我三个问题(1)什么是NIO(Non-blocked IO),AIO,BIO(2) java IO 与 NIO(New IO)的区别(3)select 与 epoll,poll区别我胡乱说了一气,自己边说边觉得完蛋了。果然,二面没过,很简单的问题,回来后赶紧作了总结:一、什么是socket?什么是I/O操作?...转载 2018-08-12 15:04:21 · 133 阅读 · 0 评论 -
百万级别长连接,并发测试指南
前言都说haproxy很牛x, 可是测试的结果实在是不算满意, 越测试越失望,无论是长连接还是并发, 但是测试的流程以及工具倒是可以分享分享。也望指出不足之处。100w的长连接实在算不上太难的事情,不过对于网上关于测试方法以及测试工具的相关文章实在不甚满意,才有本文。本文有两个难点,我算不上完全解决。后端代码的性能. linux内核参数的优化.环境说明下面所有的测试机器都是...转载 2018-07-31 00:22:37 · 6631 阅读 · 2 评论 -
Kickstart/Anaconda实现自动化安装原理探究
内容概要: 1. 系统安装基本流程图示2. Anaconda简介3. Kickstart简介4. 引导并指定安装方式5. kickstart文件中的主要项目及参数介绍6. kickstart配置文件示例7. RedHat 安装光盘安装树介绍8. Anaconda/Kickstart系统安装过程简图9. 安装树中boot.img及stage.img解构图析10...转载 2018-07-28 17:08:24 · 885 阅读 · 0 评论 -
Linux: grep多个关键字“与”和“或”
1、或操作grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行egrep '123|abc' filename // 用egrep同样可以实现awk '/123|abc/' filename // awk 的实现方式2、与操作grep pattern1 files | grep pattern2 //显示既匹配 pa...转载 2018-07-11 20:22:22 · 339 阅读 · 0 评论