memcached占用cpu过高 服务器要运行什么应用?
服务器要运行什么应用?
服务器是提供计算服务的设备。因为服务器需要响应服务请求并对其进行处理,所以一般来说,服务器应该具备承担和保障服务的能力。
服务器想要运行什么样的应用程序取决于放置在服务器上的项目所需的环境。不同项目的环境不一样。下面是PHP项目环境中的一个例子。不管项目是用什么语言开发的。WEB服务器、动态服务器、数据库服务器、缓存服务器等等一般都离不开。
WEB服务器WEB服务器不等于服务器。因为有人会说部署项目的时候需要web服务器。这里的web服务器是指定的真实服务器。
那么什么是服务器和Web服务器呢?
服务器由处理器、硬盘、内存、系统总线等组成。,类似于一般的计算机架构。
WEB server是指访问用户的HTTP请求,是安装在服务器系统上的一个软件。还有nginx,Apache等等。
如果后WEB时期用户数量过大,可以扩展服务器机器,加入负载均衡集群,实现服务性能的横向扩展。垂直扩展是为了优化您当前服务器的配置性能。
例如:8核、16G内存的服务器,开放多个进程进行服务请求访问。这可以使单个服务器的性能更好。一般的访问大多是横向和纵向的。
动态服务器是一个站,是静态文件和动态脚本语言的结合。动态脚本,它需要一个动态服务器来解析和执行。成功实现后,我们将返回用户需要的内容。
比如像PHP中的PHP-FPM或者Java中的Tomcat,这些都是动态脚本语言需要的服务。只有他们可以执行和识别编写的脚本。
数据库服务器数据库服务器,简称数据库,主要用于网站的数据存储。它需要快速的CPU、大内存和快速稳定的磁盘IO。因为当你的脚本处理数据时,需要从数据库中查询。就像我们的大仓库,找一件衣服肯定不如自己在衣柜里找一件衣服方便。所以,当后期数据量过大时,还是需要对数据库进行优化,比如:子数据库和子表、读写分类、索引优化等等。
常用的数据库是MySQL和Oracle服务器,需要较好的CPU配置。
缓存服务器缓存服务器也叫非关系型数据库。一般来说,缓存是基于服务器的内存作为数据的存储单元。所以它需要更多的内存。因为在缓存中,它的IO读写能力比普通磁盘IO更强。
这也是为什么当用户数量比较大的时候,我们会使用缓存来存储热数据。这样,用户 的请求可以得到更快的响应。因为数据库很费时间,但是热数据是每个用户的。访问并一直得到它。
常见的有:Redis,Memcach
服务器运维工程师应该掌握哪些知识?
首先,谢谢你邀请我。
运维工程师现在越来越多元化。不是每个阶段掌握的技能都是一样的,不同的发展方向掌握的技能也会不一样。以下不包括特种设备运维方向,如网络运维、IT运维、存储网络/安全等。,并列举了几种常见的运维发展方向。从基础、高级到进阶,一般需要掌握的技能可能并不全面。
应用操作和维护
:
基础:Linux基础/相应的语言环境,如tomcat/LAMP/LNMP,应该能掌握安装、配置和日常维护操作。
高级:Linux存储管理/安全加固/进程资源管理/网络管理,其他应用中间件如缓存(redis/memcached),MQ(ActiveMQ/RabbitMQ)等。)、服务发现和治理中间件(如zookeeper)和配置管理工具(如Puppet/Saltstack/CFengine等。).
高级:Shell脚本可以轻松获取,Linux内核/网络等常用参数的配置原理和优化场景,资源消耗的调查和优化,iptables、pam、selinux等安全机制的掌握。Java运行时环境也需要熟悉JVM优化,GC日志分析,JAVA线程栈分析等等。
此外,你需要知道一些事情:
虚拟化技术,如VMware/VirtualBox/KVM。
虚拟化管理技术,如VSP here/con virt/Ovirt/open nebula等。
Docker的基本使用和管理
私有云平台,比如Openstack/CloudStack。
公共云平台,如阿里云/AWS
网络基础技术,如IP网络基础、OSI七层、HTTP/HTTPS/RPC协议、VLAN、路由、NAT、ACL等概念及相关配置技术。
虚拟化和云运维方向
,如以商业化的VMware为例:
基础:ESXi安装、配置和单主机管理;各种概念,如VM/datastore/v switch;vCenter的基本管理,如模板、网络配置、克隆、迁移等。
高级:vCenter高可用性、vSphere HA高可用性、vSphere容错、VMotion;如果使用共享存储还需要了解光纤通道SAN/iSCSI存储网络。
高级:vsphere站点恢复/vsphere数据保护/VSAN管理等。
此外,如果您使用VMware的其他产品,如NSX/vRealize,您必须了解更多信息。
全面发展
,有以下几点需要掌握:
基础:监控,如Nagios/Zabbix等基础配置;DNS/NFS/FTP等服务配置;Docker的基本使用和管理
高级:网络分析,如tcpdump/wireshark;;性能分析工具,如nmon/if top/io top;负载均衡,比如nginx/LVS/haproxy。学习一门脚本语言,比如python/perl/go。
高级:进程跟踪和故障分析,如strace/kdump/gdb。Docker安排系统,如kubernetes/swarm等。还有日志分析麋鹿;;索引数据库influxdb/promethus等。
看起来很炫,但并不是什么都需要掌握。以下几个方面可以作为单独的发展方向。如果你能独立获得一个方向,你就已经进入运维架构师的级别了。
虚拟化和私有云管理方向
如果你独立获得OpenStack上的产品,它不会。;不要指望只是建立一个测试环境来玩。
Docker与编排系统的方向
,比如在Kubernetes上独立制作。
精细监控报警器的设计与实现
它不仅是一个单一的监控工具,如zabbix,也是一个简单的资源,网络和应用程序可用性的监控工具。它还应该包括日志分析和精细索引监控。
例如,领导标准日志的研究和开发,使用ELK进行日志分析,并针对详细的业务场景发布准确的监控和业务数据可视化报告。
再比如使用influx DB/Grafana或promethus收集硬件传感器/cpu/mem/io/eth/vm/docker等信息,然后构建精细化的资源使用报告。
然后集成日志分析/精细化资源监控,打通从业务-gt应用-gt资源-gt硬件的集成监控联动。
自动配置管理方向
,简单的用puppet/saltstack之类的平台加上一些定制的脚本来管理,开发一个高级的管理平台,和UI。
取决于实际工作中的应用场景、管理规模、自动化程度和监控要求。每个人 美国人的精力是有限的。一个优秀的运维最需要的是一颗时刻保持学习的心和强大的自学能力。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。