01
熟练使用Shell脚本,并且能够完成很多自动化的工作;
熟悉awk/sed/perl 操作技术,能够完成大部分文本处理和数据统计等工作;
精通Linux程序(包括各种库、包、第三方依赖等等,比如MongoDB/Redis/Sphinx/Luncene/SVN之类的);
熟悉Linux服务,比如如何查看Linux的性能指标数据,比如Linux基础下面的问题跟踪等。
02
精通Nginx配置、多核配置、events、proxy_pass,sendfile/tcp_配置,了解超时等相关配置和性能影响;
知道Nginx除了web server,还能够承担代理服务器、反向静态服务器等配置;熟悉Nginx配置调优、权限配置;
熟悉的Nginx运行原理(master/worker机制,epoll),并且能够区分Nginx 跟apache的区别和联系;
03
熟悉MysqL优化(group by/order by/rand优化等),掌握很多小技巧,熟悉MysqL搭建、冷热备份MysqL数据;
熟悉能够影响innodb/myisam性能的配置选项(比如key_buffer/query_cache /sort_buffer/innodb_buffer_pool_size/innodb_flush_log_at_trx_commit等);
熟练MysqL主从同步的环境,熟悉各个binlog_format的区别;
了解MysqL的性能追查,包括slow_log/explain等,熟悉基本的索引建立以及优化处理等知识;
原理方面了解基本的MysqL的架构 (Server+存储引擎),了解基本的InnoDB/MyISAM索引存储结构和不同(聚簇索引,B树);
了解基本的InnoDB事务处理机制;
了解大部分MysqL异常情况的处理方案(或者知道哪儿找到处理方案)。
熟悉Nosql的代表MongoDB数据库,对比nosql跟 MysqL的差别,同时能够结合使用MongoDB。
04
基本所有的中型系统里面都会涉及到缓存处理,所以一定要熟悉缓存的使用和它存在的一些缓存隐患问题以及解决方案;
知道Memcached和Redis的异同和应用场景以及安装配置,了解Memcahed的特性和优缺点,比如最大的value值;
熟悉Redis的基本工作原理和使用,比如基础的数据类型以及应用场景,了解Redis的事务、队列等等。
原理部分,熟悉Memcached的内存结构 (slab机制),或者redis常用数据类型底层实现存储结构(SDS/链表/SkipList/HashTable)等等,了解Redis 的持久化机制以及RDB、AOF机制恰当使用。
05
安装配置方面:
熟悉PHP和各种第三方扩展的编译安装以及配置;
了解PHPfpm的大部分配置选项和含义(如 max_requests/max_children/request_terminate_timeout之类的影响性能的配置),了解mod_PHP /fastcgi的区别和联系;对PHP面向对象的有深入理解,比如依赖注入,路由运行原理,反射等等;
有做过TP/Laraver等框架的源码分析,知道PHP主流框架内部实现机制和设计思想;熟练使用常规的设计模式来应用开发(抽象工厂/单例/观察者/命令链/策略/适配器 等模式);
深入理解MVC模式,自己也可以去做到一些开发;熟悉PHP的各种调优方法,熟悉PHP大部分安全问题的解决处理;
熟悉基本的 PHP执行的机制原理(Zend引擎/扩展基本工作机制);
06
能够设计大部分中型系统的网站架构、数据库、基本PHP框架选型;
性能测试、问题排查和处理等;
能够完成类似:浏览器 > CDN(Squid) > Nginx+PHP > 缓存 > 数据库。
架构网站的基本设计开发维护;
能够支撑每天数百万到千万流量基本网站的开发维护工作;