管理PHP-MemCache的中坚采纳

管理 1管理 2一、kvm环境准备

1.什么是MemCache

  MemCache一种工作于服务器端的数额管理工具,他可以将数据以
键-值对的款型保存在内存中。紧要功用是用作缓冲区以增强快捷出现访问的快慢。

kvm介绍:

KVM是Kernel  Virtual  Machine的简写,近日Red 
Hat只补助在64位的RHEL5.4及以上的系列运转KVM,同时硬件需要帮忙VT技术。KVM的前身是QEMU,二零零六年被Red 
Hat公司收购并得到一项hypervisor技术,然而Red 
Hat的KVM被认为是将变为将来Linux 
hypervisor的主流,准确来说,KVM仅仅是Linux内核的一个模块。管理和创办完整的KVM虚拟机,需要更多的匡助工具。

 

2.MemCache的安装

  下载MemCache的源文件,并雄居memcached目录下。

  在命令行输入指令安装

管理 3

  执行完毕后,我们就可以在windows的服务管理中找到memcache服务了,这里我将他的开行情势改为手动启动

  管理 4

  假使现在要开动memcache服务的话需要在命令行输入一下指令

管理 5

qemu介绍:

QEMU是一套由法布Rhys·Bella(Fabrice
Bellard)所编纂的以GPL执照分发源码的模仿处理器,在GNU/Linux平台上拔取大规模。BochsPearPC等与其类似,但不拥有其广大特征,比如高速度及跨平台的特征,通过KQEMU本条闭源的加速器,QEMU能模仿至接近实际电脑的快慢。

现阶段,0.9.1及前边版本的qemu可以动用kqemu加速器。在qemu1.0未来的版本,都不能利用kqemu,紧要行使qemu-kvm增速模块,并且加速效果以及稳定分明好于kqemu

 

3.MemCache的连年与行使

  memcached进程是劳动器端的,memcached可以使用编程语言(如PHP)也足以应用Telnet。

  Telnet使用ip地址和端口号连接,那里ip地址为本机,端口号为默认11211。

管理 6

  连接成功将来就能够动用客户端命令举办操作了

安装kvm相关包

# yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install -y

4.MemCache命令

申明虚拟机是否帮助kvm

 # grep -E ‘vmx|svm’ /proc/cpuinfo

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs 
bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 fma cx16 
pcid sse4_1 sse4_2 x2apic 
movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid xsaveopt

 

  stats查看服务器状态

成立硬盘

-f指定镜像制造的格式

# qemu-img create -f raw /opt/CentOS-7.2-x86_64.raw 10G

Formatting '/opt/CentOS-7.2-x86_64.raw', fmt=raw size=10737418240

 

验证

# lsmod |grep kvm

kvm_intel             162153  0

kvm                   525259  1 kvm_intel

 

开启libvirtd

[root@localhost ~]# systemctl enable libvirtd

Created symlink from /etc/systemd/system/sockets.target.wants/virtlockd.socket to /usr/lib/systemd/system/virtlockd.socket.

[root@localhost ~]# systemctl start libvirtd

[root@localhost ~]# systemctl status libvirtd

  管理 7

上传镜像

# dd if=/dev/cdrom of=/opt/CentOS-7.2.iso

8456192+0 records in

8456192+0 records out

4329570304 bytes (4.3 GB) copied, 200.903 s, 21.6 MB/s

 

  add添加数码

    add命令以<键>-<标记>-<有效期>-<数据长度>的方法丰裕数据

    键值必须唯一

    标记值是一个无符号整数,其效劳见前边部分

    有效期单位是秒,0意味永久有

管理,    数据长度,相比较难以设置,所以大家使用编程语言提供的借口添加数据

    管理 8

    如图添加一个名为user的数码,标记为1,时间为30秒,长度为5。

    add倘诺添加一个已经存在的键名的话将会破产。

虚拟机安装帮衬查询

# virt-install --help

# virt-install --name CentOS-7.1-x86_64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.2.iso --disk path=/opt/CentOS-7.2-x86_64.raw --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole



Starting install...

Domain installation still in progress. You can reconnect to

the console to complete the installation process.

 

  set添加多少

    set使用方法与add相同set添加一个键名存在的多寡时,将会交替掉原来老大。

    管理 9

假如不小心写错 需要重新安装

# virsh undefine CentOS-7.1-x86_64

 

接下来再实践 安装

登录vnc

 管理 10

 管理 11

运用tab键编写内核参数 修改网卡名为eth0

net.ifnames=0 biosdevname=0

 

修改完回车

 

设置完毕reboot virt就会被关闭

[root@localhost ~]# virsh list --all

 Id    Name                           State

----------------------------------------------------

 -     CentOS-7.1-x86_64              shut off

 

 

  get查询数据

    使用get 键名 查询数据

    管理 12

手动开启virt

[root@localhost ~]# virsh start CentOS-7.1-x86_64

Domain CentOS-7.1-x86_64 started

 

再用vnc连接

 管理 13

 

在vnc里修改eth0网卡配置文件

ONBOOT=yes

重启网卡

# systemctl restart network

 

翻看网卡

# ip ad li

 

 管理 14

测试是否能接二连三外网

 管理 15

给虚拟机装上 ifconfig命令

# yum install -y net-tools

 

  delete删除数据

    管理 16

给虚拟机创造cpu

法一:通过修改xml文件来变化

假如已经设置好了想要调节也是修改xml文件

virsh edit CentOS-7.1-x86_64

<domain type='kvm'>

  <name>CentOS-7.1-x86_64</name>

  <uuid>9d0660d2-d5c0-4c1e-b671-6b2c4ce84514</uuid>

  <memory unit='KiB'>1048576</memory>

  <currentMemory unit='KiB'>1048576</currentMemory>

  <vcpu placement='auto' current="1">4</vcpu>

 

 

重启生效

[root@localhost ~]# virsh shutdown CentOS-7.1-x86_64

Domain CentOS-7.1-x86_64 is being shutdown

 

 

[root@localhost ~]# virsh start CentOS-7.1-x86_64   

Domain CentOS-7.1-x86_64 started

 

法二:也可以 手动install

# virt-install --help|grep cpu

 --vcpus VCPUS         Number of vcpus to configure for your guest. Ex:

                        --vcpus 5

                        --vcpus 5,maxcpus=10,cpuset=1-4,6,8

                        --vcpus sockets=2,cores=4,threads=2,

  --cpu CPU             CPU model and features. Ex:

                        --cpu coreduo,+x2apic

                        --cpu host

 

翻开一下虚拟机的cpu个数

 管理 17

 

  flush_all命令删除所有数量

    注意下划线

    管理 18

cpu的热添加

[root@localhost ~]# virsh setvcpus CentOS-7.1-x86_64 2 --live

 

加上完后 cat /proc/cpuinfo查看

 管理 19

 

 

查阅cpu的劳作意况

 管理 20

 

在意:热添加只可以扩展不可以减弱,添加的最大个数由xml文件里设置的个数控制

<vcpu placement='auto' current="1">4</vcpu>

 

[root@localhost ~]#  virsh setvcpus CentOS-7.1-x86_64 3 --live

[root@localhost ~]#  virsh setvcpus CentOS-7.1-x86_64 2 --live

error: unsupported configuration: failed to find appropriate hotpluggable vcpus to reach the desired target vcpu count

 

 

 

5.遍历出总体数额

  首先利用stats items命令查看存入数据的情事

  大家首先添加one,two,three三条数据

  然后用stats items观察

  管理 21

  之后方可选用stats cachedump <标记>
<数字>呈现出成套多少,

  其中数组表示彰显出的条数,如假使0则代表所有数目

  管理 22

  注意:假设拔取delete删除数据,则该办法不会来得出删除的数量,但选拔flush_all方法删除的数码任然可以打印,但实质上已经去除,不能取出值。

 

给虚拟机热添加 内存

[root@localhost ~]# virsh edit CentOS-7.1-x86_64

<memory unit='KiB'>4048576</memory>         

 

重启虚拟机进程

[root@localhost ~]# virsh shutdown CentOS-7.1-x86_64

Domain CentOS-7.1-x86_64 is being shutdown



[root@localhost ~]# virsh start CentOS-7.1-x86_64   

Domain CentOS-7.1-x86_64 started

 

 

管制虚拟机内存的下令

[root@localhost ~]# virsh qemu-monitor-comman

 

末端接–help查看 命令使用

翻看虚拟机的内存

 管理 23

 

在终极查看虚拟机内存

[root@localhost ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd info balloon

balloon: actual=1024

 

设置虚拟机内存600M

[root@localhost ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd  balloon 600

 

在vnc上查看虚拟机内存,可以发现显示不是很准

 管理 24

 

 

给虚拟机设置2g内存

 

[root@localhost ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd  balloon 2000

[root@localhost ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd info  balloon

balloon: actual=2000

 

 

自动生成的xml文件存放地点

[root@localhost ~]# cd /etc/libvirt/qemu/

[root@localhost qemu]#

CentOS-7.1-x86_64.xml  networks

 

 

图形界面管理创造虚拟机

# virt-manager

 

libvirt介绍

当前主流Linux平台上默认的虚拟化管理工具virt-manager(图形化),virt-install(命令行模式)等均基于libvirt开发而成。

Libvirt 库是一种实现 Linux 虚拟化功效的 Linux® API,它协助各样虚拟机监控程序,包括 Xen 和 KVM,以及 QEMU 和用来其余操作系统的一对虚构产品。

libvirt 提供一种虚拟机监控程序不可知的
API 来安全治本运作于主机上的客户操作系统。libvirt 本身 不是一种工具,
它是一种能够成立工具来治本客户操作系统的 API。libvirt 本身构建于一种浮泛的概念之上。它为受帮助的虚拟机监控程序实现的常用效能提供通用的
API。libvirt 起头是专门为 Xen 设计的一种管理 API,后来被增添为可支撑两个虚拟机监控程序。

virsh 管理工具

查看:

[root@localhost qemu]# virsh list

 Id    Name                           State

----------------------------------------------------

 1     CentOS-7.1-x86_64              running



[root@localhost qemu]# virsh list --all

 Id    Name                           State

----------------------------------------------------

 1     CentOS-7.1-x86_64              running



[root@localhost ~]# iptables -t nat -vnL

Chain PREROUTING (policy ACCEPT 1 packets, 52 bytes)

 pkts bytes target     prot opt in     out     source               destination         



Chain INPUT (policy ACCEPT 1 packets, 52 bytes)

 pkts bytes target     prot opt in     out     source               destination         



Chain OUTPUT (policy ACCEPT 15 packets, 1225 bytes)

 pkts bytes target     prot opt in     out     source               destination         



Chain POSTROUTING (policy ACCEPT 15 packets, 1225 bytes)

 pkts bytes target     prot opt in     out     source               destination         

    2   267 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24        

    0     0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255     

    0     0 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535

    0     0 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535

0     0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24

 

 

[root@localhost ~]# cat /var/lib/libvirt/dnsmasq/default.conf

##WARNING:  THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE

##OVERWRITTEN AND LOST.  Changes to this configuration should be made using:

##    virsh net-edit default

## or other application using the libvirt API.

##

## dnsmasq conf file created by libvirt

strict-order

pid-file=/var/run/libvirt/network/default.pid

except-interface=lo

bind-dynamic

interface=virbr0

dhcp-range=192.168.122.2,192.168.122.254

dhcp-no-override

dhcp-authoritative

dhcp-lease-max=253

dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile

addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts

 

 

辅助的硬盘的品类

# qemu-img --help

Supported formats: vvfat vpc vmdk vhdx vdi ssh sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd iscsi gluster dmg tftp ftps ftp https http cloop bochs blkverify blkdebug

 

全镜像格式

稀疏格式

raw

qcow2(支持压缩,快照,镜像)

 

添加网桥

[root@localhost ~]# brctl show

bridge name     bridge id               STP enabled     interfaces

virbr0          8000.fe54006fd14f       yes             vnet0

[root@localhost ~]# brctl addbr br0

[root@localhost ~]# brctl show     

bridge name     bridge id               STP enabled     interfaces

br0             8000.000000000000       no

virbr0          8000.fe54006fd14f       yes             vnet0

[root@localhost ~]# brctl addif br0 eth0 && ip addr del dev eth0 10.0.0.111/24 && ifconfig br0 10.0.0.111/24 up &&

route add default gw 10.0.0.2 && iptables -F

 

 管理 25

 

 

虚拟机的去除命令

virsh undefine 主机名

 

导出xml命令

[root@localhost ~]# virsh --help|grep dump

    dump                           dump the core of a domain to a file for analysis

    dumpxml                        domain information in XML

    save-image-dumpxml             saved state domain information in XML

    iface-dumpxml                  interface information in XML

    nwfilter-dumpxml               network filter information in XML

    net-dumpxml                    network information in XML

    nodedev-dumpxml                node device details in XML

    secret-dumpxml                 secret attributes in XML

    snapshot-dumpxml               Dump XML for a domain snapshot

    pool-dumpxml                   pool information in XML

vol-dumpxml                    vol information in XML

 

 

操作虚拟机的常用管理命令

virsh start

virsh shutdown

virsh edit

virsh destroy  相当于物理机直接拔电源  kill -9 进程也是一样

virsh suspended 终止

virsh resumed   恢复

qemu-img      磁盘管理命令

 

 

CPU 优化 vt-x

 管理 26

 

 

taskset 绑定KVM进程到稳定的CPU,缩短Cache Miss

 

内存优化

 管理 27

 

  1. 宿主机虚拟内存 -> 宿主机物理内存

      

虚拟机的虚构内存 -》 虚拟机的物理内存

   影子列表

  宿主机虚拟内存 -》    宿主机物理内存

    ept 内存寻址

ksmd默认开启  来压缩内存空间
合并内存相同内容

 

 

writeback性能最好可是最不安全
 断电数据有可能不一起

WriteThrough 最慢但是最安全
 (默认是该形式)

[root@localhost ~]# ps -ef |grep ksmd

root        282      2  0 21:39 ?        00:00:00 [ksmd]

 

大页内存默认开启

[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/enabled

[always] madvise never

 

  

khugepaged将连接可用4k的内存页合并成2M的大页文件

[root@localhost ~]# ps -ef|grep kh

root        283      2  0 21:39 ?        00:00:01 [khugepaged]

I/O

默认使用 Virtio 半虚拟化队列接口

virio-net virio-blk

 

IO Schedulers

电梯算法

  1. Noop Sheduler FIFO SSD    什么都不干的调度措施
  2. Anticipatory IO Sheduler(“as sheduler”)
  3. Deadline Sheduler     截至时间的调度措施 默认读短于写
    一般用来数据库
  4. Complete Fair Queueing Scheduler(“cfq sheduler”) 完全公平的调度的办法

linux襄助的调度算法

[root@localhost ~]# dmesg |grep -i scheduler

[    0.933120] io scheduler noop registered

[    0.933122] io scheduler deadline registered (default)

[    0.933137] io scheduler cfq registered

 

翻看当前拔取的调度算法

[root@localhost ~]# cat /sys/block/sda/queue/scheduler

noop [deadline] cfq

 

暂时变更当前的算法

[root@localhost ~]# echo cfq > /sys/block/sda/queue/scheduler

[root@localhost ~]# cat /sys/block/sda/queue/scheduler                     

noop deadline [cfq]

 

永久修改

加入内核参数  elevator=noop

 

 

镜像制作:

 

  1. 分区的时候,只分一个/分区。
  2. 删除网卡和udev规则里的uuid 和MAC
  3. 闭馆防火墙和selinux
  4. 安装常用包net-tools lrzsz
    screen tree vim wget

 

KVM管理平台介绍:

OpenStack

CloudStack  cloud.com集团–》Ctrix—》Apache基金会—》Java(商业化产品)

OpenNebula

ZStack

oVirt  RHEV的开源实现 Fedora Centos RHEL  https://www.ovirt.org/download/

   管理端+客户端组成  oVirt Engine   oVirt主机/节点

sudo yum install http://resources.ovirt.org/pub/yum-repo/ovirt-release41.rpm



sudo yum install -y ovirt-engine



sudo engine-setup

 

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注