记录云计算中心日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
 
0
进程和线程关系及区别 1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.2.关系一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。3.区别进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求...
 
0
在linux下不同硬件或者系统版本不同识别到的块设备的名称各不相同,可能是sda、xda等等,因此通过zabbix监控磁盘普通的模板显得死板不不够灵活。通过zabbix的自动发现功能,通过脚本获取系统块设备的名称,然后保存到变量中,在通过zabbix客户端的自定义监控选项将监控的键值传给服务端。参考http://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/ 该文档部署,但需要修改zabbix服务端的模板文件,测试发生使用该文档提供的 zbx_parse_iostat_values.sh获得的键值在zabbix服务端呈现图像时有问题,因此使用除了需要修改zabbix客户端的配置文件中的自定义键值的获取方式外,还需要修改服务端模板文件创建自动发现脚本从网络上下载,vim /etc/zabbix/scripts/discover_disk.pl#!/usr/bin/<a href="http://www.ttlsa.com/perl/" title="perl"target="_blank">perl</a># give disk dmname, returns Proxmox VM namesub get_vmname_by_id  {  $vmname=`cat /etc/qemu-server/$_[0].conf | grep name | cut -d \: -f 2`;  $vmname =~ s/^\s+//; #remove leading spaces  $vmname =~ s/\s+$//; #remove tr...
CentOS 7 利用qemu模拟ARM vexpress A9开发板本文仅仅记录Qemu装载Linux kernel和busybox根文件系统的过程。后续将会深入了解仿真的其他内容。先上成果图:1. 安装QEMUQEMU是一套由Fabrice Bellard所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛。Bochs,PearPC等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过KQMEU这个开源的加速器,QEMU能模拟至接近真实电脑的速度。之前已有记录CentOS 7编译安装qemu的方法:http://www.92cto.com/blog/2000.html我的版本是2.10.02. 编译内核解压下载的kernel文件,进入解压后的文件夹,运行下面的指令编译。生成vexpress开发板子的config文件:make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm vexpress_defconfig编译:make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm执行启动脚本 #! /bin/bash qemu-system-arm \ -M vexpress-a9 \ -m 512M \ -kernel /home/walt740/kernel/linux-4.13.5/arch/arm/boot/zImage \ ...
QEMU编译安装支持ARM架构QEMU是一个支持跨平台虚拟化的虚拟机,有user mode和system mode两种配置方式。其中qemu在system mode配置下模拟出整个计算机,可以在qemu之上运行一个操作系统。QEMU的system mode与常见的VMware和Virtualbox等虚拟机比较相似,但是QEMU的优势是可以跨指令集。例如,VMware和Virtualbox之类的工具通常只能在x86计算机上虚拟出一个x86计算机,而QEMU支持在x86上虚拟出一个ARM计算机。qemu在user mode配置下,可以运行跟当前平台指令集不同的平台可执行程序。例如可以用qemu在x86上运行ARM的可执行程序,但是两个平台必须是同一种操作系统,比如Linux。QEMU还支持很多其他的平台,详细列表参见这里。QEMU中有两个重要的名词host和target(guest),其中host表示qemu程序本身运行的平台,target(guest)表示qemu虚拟出的计算机平台(system mode)或支持的可执行程序的运行平台(user mode)。下面描述一下编译和使用host为x86,target(guest)为ARM的步骤1. 下载QEMU源码wget http://wiki.qemu-project.org/download/qemu-1.4.0.tar.bz22. 解压、configuretar xvf qemu-1.4.0.tar.bz2 cd qemu-1.4.0 ./configure --target-list=arm-softmmu,arm-linux-user -...
经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响。所以本文我们将和大家一起分享学习下如何通过Mysql的二机制日志(binlog)来恢复数据。系统环境:操作系统:CentOS 6.5 X64  (虚拟机);WEB服务:PHP+Mysql+apache;网站:为方便,直接在本地用蝉知系统搭建一个DEMO站点;操作步骤:1.开启binlog功能及基本操作;2.往站点添加数据;3.刷新binlog日志;4.删除数据;5.binlog日志内容解析;6.恢复指定数据;1.开启binlog功能及基本操作要使用Mysql的binlog日志功能,首先要在Mysql的配置文件中开启该功能,操作很简单。找到Mysql的配置文件,在文件中添加一行”log_bin = mysql-bin”即可。其实在我安装的各种Mysql环境中,该功能通常都是默认开启的。开启binlog功能后,在mysql的数据库目录下就会有诸如mysql-bin.000001、mysql-bin.000002等文件,这就是mysql的二进制日志文件。每当mysql启动或手动刷新日志后都会新建一个二进制日志文件。首先我们mysql命令行中,用”show master logs”命令查看已有的binlog文件。2.往站点添加数据在网站后台文章模块里,我添加了几条测试数据。3.刷新b...
 
0

运维利器万能的 strace

发表者:admin分类:系统运维2017-12-04 12:42:41 阅读[681]
运维利器万能的 strace strace是什么?按照strace官网的描述, strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。strace底层使用内核的ptrace特性来实现其功能。在运维的日常工作中,故障处理和问题诊断是个主要的内容,也是必备的技能。strace作为一种动态跟踪工具,能够帮助运维高效地定位进程和服务故障。它像是一个侦探,通过系统调用的蛛丝马迹,告诉你异常的真相。strace能做什么?运维工程师都是实践派的人,我们还是先来个例子吧。我们从别的机器copy了个叫做some_server的软件包过来,开发说直接启动就行,啥都不用改。可是尝试启动时却报错,根本起不来!启动命令:./some_server ../conf/some_server.conf1./some_server ../conf/some_server.conf输出:FATAL: InitLogFile failed iRet: -1!Init error: -165512FATAL: InitLogFile failed iRet: -1!Init error: -1655为什么起不来呢?从日志看,似乎是初始化日志文件失败,真相到底怎样呢?我们用strace来看看。strace -tt -f  ./some_server ../conf/some_server.conf1strace -tt -f  ./some_server ../con...
linux vsftp中的local_umask和anon_umask Linux文件系统中:r:4(读)w:2(写)x:1(执行) umask是在linux中常见的一个东西,它其实是一个掩码。当然,也有umask这样一个命令,它是对用户建立的文件的默认属性的定义。该 定义为:假设umask为022,则对于一个文件夹的话,它的默认属性为 777-022=755,这也就是我们平时建立文件夹的权限。而对于一般的文件的话,则是用 666-022=644.umask是unix操作系统的概念,umask决定目录和文件被创建时得到的初始权限umask = 022 时,新建的目录 权限是755,文件的权限是 644umask = 077 时,新建的目录 权限是700,文件的权限时 600vsftpd的local_umask和anon_umask借鉴了它默认情况下vsftp上传之后文件的权限是600,目录权限是700想要修改上传之后文件的权限,有两种情况如果使用vsftp的是本地用户则要修改配置文件中的 local_umask 的值如果使用vsftp的是虚拟用户则要修改配置文件中的 anon_umask 的值
 
0

zabbix监控TCP连接状态

发表者:admin分类:监控安全2017-11-22 09:26:07 阅读[2076]
使用zabbix监控TCP连接状态 一 监控原理:[python] view plain copy [root@99 nginx]# /bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}'  TIME_WAIT 5470  FIN_WAIT2 2  ESTABLISHED 16  LISTEN 4  [html] view plain copy 可以使用man netstat查看TCP的各种状态信息描述  ESTABLISHED       socket已经建立连接  CLOSED            socket没有被使用,无连接  CLOSING           服务器端和客户端都同时关闭连接  CLOSE_WAIT        等待关闭连接  TIME_WAIT         表示收到了对方的FIN报文,并发送出了ACK报文,等待2MSL后就可回到CLOSED状态  LAST_ACK&nb...
zabbix3对tcp连接数及状态的监控优化tcp的监控采用netstat命令,发现在服务器繁忙的时候效果不理想,这个命令占用大量的cpu有时候高达90%以上,可能会导致业务的不稳定,所以改用ss命令对脚本进行优化对tcp连接数和状态的监控意义主要有以下几点:1.可以观察服务器的压力分布(连接数大于5W的时候可能系统会有一定的压力,可以考虑加服务器)2.如果服务器的连接数突然变得极小(比如100以下),可能是业务系统故障导致在线用户被踢出在需要被监控的zabbix-agent端添加脚本编写创建文件夹mkdir -p /usr/local/zabbix-agent/scripts/mkdir -p /etc/zabbix/zabbix_agentd.d/vim /usr/local/zabbix-agent/scripts/tcp_status_ss.sh#!/bin/bash #scripts for tcp status function SYNRECV { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'SYN-RECV' | awk '{print $2}'} function ESTAB { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'ESTAB' | awk '{print $2}'} function FINWAIT1 { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-1' ...
oracle中ora-0100 maximum opencursors exceeded差错打开游标过大的解决使用oraclesqlhandler程序操作数据库时,提示ora-0100 maximum opencursors exceeded,断开对应的操作窗口会话,然后再重新执行命令或sql语句,程序正常了。java造访oracle数据库,,在for循环代码中,如果漠视关闭createstatment或preparedstatement建立的连接,将出现:ORA-0100  maximum opencursors exceeded  。   oracle中每次应用用createstatment或preparedstatement语句,都将打开一个游标,所以单纯增加oracle中打开游标数目不是解决问题的办法。问题解决:1:首先定位是那些语句打开的游标过大。履行以下语句:select * from v$open_cursor   where user_name = 'tech'2:从上面的查找结果的sql_text字段中,找到sql语句,再去java代码中定位履行这些语句的代码,添加PreparedStatement或Statement类的close法子
    总共199页,当前第9页 | 页数:
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19