mysql processlist聚合分析

昨晚db告警,从慢日志和异常日志行为分析,表现都不太明显(并不像以往api请求变更历史那样有明显的IP和action或是用户信息,比较分散),虽然log初步分析是api流量有点大,但是最后都由于自己不够坚定而放弃了怀疑,说白了,还是自己技术不够到位,事后分析了下,慢日志和异常行为日志这两者如果不明显,但是db进程数(出现很多sleep进程)一直告警,是否可以通过processlist host出现的次数,来判断sql来源呢?如果host指向api,是不是就可以坐实了,那如何统计processlist host出现的次数?

show full processlist;并不支持类似like的过滤。于是想通过这个命令筛选得到某些服务器IP的连接不可取。但并不是没有好的办法,因为show full processlist;命令本身就是查询表PROCESSLIST里的内容,表PROCESSLIST在数据库information_schema中,我们在执行show processlist时实际在mysql中就是执行查询information_schema数据库中的processlist表查询。这就好办了,因为字段HOST中的值多是ip:port,这种IP加端口结构(当然我上面有的是localhost,这个不用考虑,大网站都会是多个WEB连接MYSQL,基本都是IP端口),所以上面使用字符串以逗号分隔,从而截取IP地址出来。所以如果想根据HOST中的连接IP地址来进行分组统计,可以使用SQL:

select server,count(server) as servernum from (select substring_index(host,':' ,1) as server from processlist ) as rsa group by server order by servernum desc;

substring_index(字段名, ‘:’, 1)的作用:截取第1个 ‘:’ 之前的所有字符。非常有用。

其实除此之外,还可以通过其他手段坐实问题
1.API容器当中php slow log (/xxxx/php/slow.log)
2.API容器当中php error.log(/xxxx/php/error.log)

memcache安全启动

今天遇到一个很老的服务,用了memcached做缓存,最近HW行动弄的人胆战心惊,memcached 如何在对外服务的时候,保证安全呢?

1.安全启动

/usr/local/memcached/bin/memcached -u 普通用户 -l 内网IP地址 -p 指定特殊端口(不以11211默认端口启动)  #启动服务

2.设置防火墙规则 (11211为memcached的默认端口)

iptables -A INPUT -p tcp -s 来源IP地址 –dport memcached的端口号 -j ACCEPT

iptables -A INPUT -p tcp –dport memcached的端口号 -j DROP 限制tcp

iptables -A INPUT -p udp –dport memcached的端口号 -j DROP 限制udp

Mysql 获取每小时及每天的数据量

统计每小时

SELECT HOUR(trigger_time) as Hour,count(*) as Count 
    FROM xxl_job_qrtz_trigger_log 
   WHERE
	trigger_time BETWEEN '2018-02-05 01:18:36'
AND '2018-02-05 17:18:36'
    GROUP BY HOUR(trigger_time) ORDER BY Hour(trigger_time);

统计每天

SELECT
	DATE_FORMAT(trigger_time, '%Y-%m-%d') triggerDay,
	COUNT(id) triggerCount
FROM
	`job_qrtz_trigger_log`
WHERE
	trigger_time BETWEEN '2018-02-02 09:18:36'
AND '2018-03-05 23:18:36'
GROUP BY triggerDay
ORDER BY trigger_time;

读书摘录

在纽约,很多幼儿园都需要提前一两年排队,如果给幼儿园打电话咨询,幼儿园会要求家长过来面试和考试。教育资源,特别是好的教育资源在哪儿都是稀缺的。于是,家长不自觉地都会感到焦虑,在选择幼儿园时,他们往往只看名头、只看热门、只看硬件,从而忽略了“好”幼儿园的真正标准。
认知老师特别强调,不要过度迷信那些所谓的热门幼儿园,幼儿园并不是越贵越好,硬件设施也不是最关键的。只要掌握好基本的标准,家长就可以自己去参观,用自己的眼睛去判断,而不是人云亦云、盲目跟风。
“玩耍”是日常活动很重要的一部分
很多父母都认为,上幼儿园就是去收心、去学习和受教育。其实,对幼儿园阶段的孩子来说,玩耍仍然是他们很重要的学习途径。其中,“装扮游戏”和体育活动显得尤为重要。
“装扮游戏”不仅能促进孩子想象力的发展,还能提高孩子的社交能力和情绪管理能力,这两种能力对于孩子以后在大集体环境中的学习有很大的影响。很多孩子上学后会出现不合群、缺乏团队合作精神等,就是因为小时候的社交能力和情绪管理能力没有培养好。
如何考察:如果你去幼儿园参观,可以看幼儿园的展示区是否有孩子的作品,如图画、手工作品等;看幼儿园里是否有“装扮游戏”的玩具,比如厨房、医生或消防员的衣服、帽子等。特别重要的是,看正在活动的孩子是否有机会一起玩耍,老师是否鼓励他们互相合作。
此外,幼儿园的体育活动也同样重要。美国建议幼儿园每天至少有2小时的户外活动时间。体育活动不仅能够锻炼孩子的体质,还能培养孩子的竞争意识、自信心和团队合作能力。
如何考察:向老师询问幼儿园每天的活动安排,看体育活动是否包含在内。更重要的是,实地参观一下幼儿园是否有操场供孩子们撒开腿跑,看是否有供孩子锻炼的器械,比如爬行器械、荡秋千、各种球类等。
有简单的认字和识数活动

很多调查研究显示,早期的阅读能力和理解能力对于孩子今后的学习有很直接的联系。当时听老师说这个问题之后,我马上产生了疑问:这岂不是和第一条“玩耍是重要的一部分”矛盾了吗?老师告诉我,这恰好是区分好、坏幼儿园的标准之一。好的幼儿园既会保证孩子玩好,也会保证将学习融入孩子的活动之中。幼儿园阶段的认字和识数活动不应该是教条的,而应该融入玩耍中,是润物细无声的过程。
如何考察:正因为是“润物细无声”的,所以看环境很重要。家长在考察幼儿园时,可以看墙上是否有字、数字等海报,教室里是否有书架,玩具角里是否有拼板、地图、钟表等帮助孩子早期启蒙的东西,有了这些东西,就会潜移默化地影响孩子。

老师!老师!老师!
这一点估计所有家长都比较重视。上幼儿园是孩子第一次长时间离开父母,因此保证孩子和老师的关系是正面并且对孩子是有益的,这一点很关键。研究证实,孩子在幼儿园的认知发展水平和幼儿园老师的关系最大。
小D的认知老师特别强调,好的老师比好的幼儿园更加重要,幼儿园的理念再好,如果没有老师来执行,就是白搭。当然,通常比较好的幼儿园拥有好老师的概率也会比较高,不过还是要眼见为实,不要盲目迷信。

如何考察:观察老师好不好,最简单也最有说服力的方法,就是看老师如何和孩子互动。当初为小D选择认知老师时,我曾面试过几个老师,之所以最终选择了小D现在的认知老师,很重要的一个原因是,她在和小D打招呼时是蹲下来的,让小D看到她的脸,然后她看着小D的眼睛,笑着说“嗨”。那一刻,我在心里说:这就是我想要的老师,她愿意从孩子的角度出发,她的态度是正面的、鼓励型的,知道如何和孩子沟通。

幼儿园的理念是否和你的家庭价值观相符合
这一点是认知老师特地提醒的。家庭教育永远是第一位的,而家庭教育和幼儿园教育理念的一致性,对于这个阶段孩子的发展特别重要。育儿归根到底是用父母的价值观去影响孩子,毕竟父母和孩子相处的时间是最长的。
选择一个家长认可、跟家长的价值观一致的幼儿园非常重要。最糟糕的情况就是,千辛万苦进了一个所谓的好幼儿园,结果孩子在幼儿园学到“一套”,回家后家长又要求“另外一套”,教育理念的不一致会让孩子感到迷惑,从而影响他们的正常发展。
如何考察:最关键的一点,是家长首先要有一些基本的育儿理念。在考察幼儿园的时候,可以假设一个情景来询问老师。比如,如果我的孩子和其他孩子抢玩具时发生了争执,老师会怎么做?然后,再想一下,换作是你,是否也会这么做。