服务器

系统性能指标查看方法-Linux

醉酒当歌 提交于 2020-03-24 14:43:53
3 月,跳不动了?>>> 一、 监控CPU 使用率 1、 Linux提供了监控CPU使用率的命令行工具,可以保留文本形式的CPU使用率运行历史和日志。常用的命令有:vmstat、mpstat、top等等,下面只是top命令的一个截图,其他的命令的使用方式,请自行搜索。 图1-1 Linux的top命令不仅包括CPU使用率也包括进程统计数据和内存使用率。上面的截图显示它的输出主要包含两个部分,上部分是整个系统的统计信息,下半部分是进程的统计信息(默认按CPU使用率由高到低排序)。 二、 CPU 调度程序运行队列 1、 Linux上可以用vmstat命令监控运行队列长度。Vmstat输出的第一列是运行队列长度,值是运行队列中轻量级进程的实际数量。如下图,红色方框列即为运行队列。 图1-2 三、 内存使用率 1、 Linux上可以用mstat输出中的free列监控页面交换,也可以用其他方法例如top命令来监控。这里介绍用vmstat监控页面交换。需要监控vmstat中的si和so,他们分别表示内存页面换入和换出的量。此外,free列显示可用的空闲内存,留意是否会同时出现空闲内存少和页面调度频繁的情形,相比而言,实际的数量单位反而不那么重要。如果观察到上述统计数据的模式,说明系统可能在进行页面交换。下面示例中的系统没有页面交换,因为si和so 没有页面调度,而且空闲内存很多。 图1-3 2

apache+mercurial+LDAP环境搭建

非 Y 不嫁゛ 提交于 2020-03-20 20:55:08
3 月,跳不动了?>>> 1 软件安装 (1)mercurial安装 # sudo apt-get install mercurial meld (2)apache安装 # sudo apt-get install apache2 libapache2-mod-wsgi (3)openldap安装 # sudo apt-get install slapd ldap-utils 2 软件配置 (1)假设软件仓库目录是/home/hg/repos(即所有的项目仓库都位于目录/home/hg/repos下) # sudo mkdir -p /home/hg/repos # sudo chown -R www-data:www-data /home/hg (2)仓库配置文件 sudo cp /usr/share/doc/mercurial/examples/hgweb.wsgi /home/hg # sudo vi /home/hg/hgweb.wsgi 修改为:config = "/var/hg/hgweb.config" # sudo chmod u+x /var/hg/hgweb.wsgi 新建hgweb.config,内容如下: 1 [collections] 2 /home/hg/repos = /home/hg/repos 3 [web] 4 allow_push=* 5

用gulp来实现web服务器

自闭症网瘾萝莉.ら 提交于 2020-03-16 18:31:29
某厂面试归来,发现自己落伍了!>>> 用gulp来实现web服务器 点这里查看原文 gulp现在是越来越流行了。它可以做的事情实在是太多了,比如,拼接js文件,压缩图片。 在这个教程里,你会了解怎么使用gulp.js来实现一个应用了内置的livereload功能的本地web服务。 以前的实现方式 假设我们要开发一个单页应用。这个app的入口是index.html。我们的目标是可以让浏览器通过localhost来访问这个页面。以前,你需要安装一个Apache或者Nginx这样的服务器软件来实现这样的功能。 更棒的实现方式 时至今日,javascript无所不能了,就要称霸天下了,甚至它都可以去实现一个web服务。这篇文章里,我们就要用一个gulp的插件,人称gulp-connect。用这个插件来实现一个WEB服务。 接下来的篇幅,我们就要来为我们的单页应用来配置一个本地服务。 开始下文之前,我假定你已经把准备工作都已经做好了,比如gulpfile文件已建好! 第一步,安装 第一步,我们要来安装下gulp-connect插件 安装的命令如下: npm install --save-dev gulp-connect 小提示:npm install --save-dev 可以简写为npm i -D 现在,我们来定义web服务,gulpfile.js的代码如下 var gulp =

Pushlet定点推送消息<一>

我只是一个虾纸丫 提交于 2020-03-16 11:02:33
上一篇日志利用推送源周期性地向订阅了某一事件的所有网页端推送信息,但怎么实现向特定的某一个用户推送信息呢,想象一个网络聊天室,怎么向单独的一个好友私聊呢。问题的关键就是那个SessionID,Pushlet默认是用java.rmi.server.UID参数的随机字符串作为会话标志,这就造成我们没法跟一个特点的用户对应上,也就是说客户必须在joinListen的时候提供一个他的ID,就像登陆qq时,输入用户名一样。 好了,这里就列出怎么修改相关代码,实现上述功能。 同样,首先用MyEclipse新建一个web工程,我这里命名为PushletTest2。不同的是,我们不引用pushlet.jar包了,因为我们要更改源码,在下载pushlet的时候里面就包含源代码了,最外层是nl包,加入我的工程的src里。好了,加进去之后会报错,将log4j.jar加入引用就好了。。之后,同样别忘了把pushlet.properties和sources.properties加入WebRoot/WEN-INF下。工程结构如下: FirPush.java是自己写的一个触发推送动作的类,它是一个servlet,请求该servlet就触发向特定的用户推送信息的动作(当然,怎么触发推送动作还有很多种形式)。 web.xml代码如下: Xml代码 < span style = "font-size: x-small

MySQL 性能监控4大指标——第一部分

廉价感情. 提交于 2020-03-02 16:17:56
【编者按】本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的4大指标。 第一部分将详细介绍前两个指标: 查询吞吐量与查询执行性能。文章系国内 ITOM 管理平台 OneAPM 编译呈现。 ##MySQL 是什么? MySQL 是现而今最流行的开源关系型数据库服务器。由 Oracle 所有,MySQL 提供了可以免费下载的社区版及包含更多特性与支持的商业版。从1995年首发以来,MySQL 衍生出多款备受瞩目的分支,诸如具有相当竞争力的 MariaDB 及 Percona。 ##关键 MySQL 统计指标 如果你的数据库运行缓慢,或者出于某种原因无法响应查询, 技术栈 中每个依赖数据库的组件都会遭受性能问题。为了保证数据库的平稳运行,你可以主动监控以下四个与性能及资源利用率相关的指标: 查询吞吐量 查询执行性能 连接情况 缓冲池使用情况 MySQL 用户可以接触到数百个数据库指标,因此,在本文中,笔者将专注于能帮助我们实时了解数据库健康与性能的关键指标。 本文参考了我们在 监控入门系列文章 中介绍的指标术语,后者为指标收集与告警提供了基础框架。 不同版本与技术的兼容性 本系列文章讨论的一些监控策略只适用于 MySQL 5.6与5.7版本。这些版本间的差异将在后文中提及。 本文列出的大多数指标与监控策略同样适用于与 MySQL 兼容的技术,诸如 MariaDB

 Android客户端缓存机制之多媒体文件缓存

时光总嘲笑我的痴心妄想 提交于 2020-03-01 20:44:31
多媒体 文件缓存 (1)图片 缓存 图片的缓存可以根据当前日期,时间为名字缓存到SD卡中的指定图片缓存目录, 同时数据库中做相应记录,记录办法可以采用两个关键字段控制,一个字段是该图片的URL地址,另一个字段是该图片的本机地址.取图片时根据URL在数据中检索,如果没有则连接 服务器 下载,下载之后再服务器中作出相应记录. (2)视频文件缓存 考虑到视频文件就是动画片,每一集的大小应该超过20MB,如果边播放边下载的话 用户的3G流量负担是很大的,而且用户看完一集动画片,基本上不会再去看第二遍. 从这个状况来看,建议不要对视频文件进行下载缓存.另外也能降低程序员的编码负担. 当然我们可以为一些动漫发烧友提供一个下载动画片的按钮,供他们下载喜欢的动画片,甚至也可以设置如果要下载动画片会付出一些代价等等. 缓存文件删除策略: 1. 每一个模块在每次客户端自动或者用户手动更新的时候删除相应模块的缓存文件,并重新下载新的缓存文件. 2. 在设置界面中提供删除缓存的功能,点击后删除本机所有 缓存 . 本地客户端与服务器交互流程图如下: 来源: oschina 链接: https://my.oschina.net/u/2971691/blog/796066

解决Javascript new Date(DateString)出错

回眸只為那壹抹淺笑 提交于 2020-03-01 05:51:05
在开发的内部应用系统中,使用JQuery从SQL取数据,使用JS显示日期,当SQL服务器上短日期格式设置为2010-08-02时,JS无法直接用new Date(strDate)生成JS Date对象,产生错误。 解决方法: 1、修改服务器上的地区日期格式为2010/08/02 2、修改JS代码,增加两行,处理日期字符串 strDate=strDate.replace('-'.'/') strDate=strDate.replace('-'.'/') 注,JS的replace一次只能替换一个 参考了以下网址 http://www.isstudy.com/javascript/1871.html var thisday=new Date() var thisday2=new Date("08/09/1999") var thisday3=new Date("08/09/1999 20:15:15") 版权声明:本文为博主原创文章,未经博主允许不得转载。 来源: oschina 链接: https://my.oschina.net/u/2420904/blog/482160

WordPress 全方位优化指南(上)

心已入冬 提交于 2020-02-29 22:22:35
作为一个全面的 WordPress 性能优化 教程,本文旨在帮助读者排查 WordPress 网站的性能问题,同时也提供网站前端优化加速的建议。 如果你曾经遇到过 WordPress 管理界面加载缓慢、「MySQL 服务器崩溃」、网页一直无法加载等情况,或者你预计网站的流量将要大涨,相信本教程会对你有益。 ######1. 查看网站前端性能指标 通常情况下,网站加载缓慢是由于 网页规模 过大引起的,而且现在的大多数网页,都包含许多图片、Flash、视频以及 JS 文件,这些元素都会给网络加载带宽造成压力,进而导页面打开缓慢、用户体验差的问题。 如果你准备认真地解决这个问题,你需要安装部署 Firefox 浏览器, Firebug 扩展程序 、 Yslow 插件以及 Browser Insight 。 开发时最好尽量将页面大小保持在 100KB 最好是 50KB 以内,如果你的网页包含许多多媒体内容,那你最好学会使用 Yslow 。Yslow 会对网站性能进行打分(分值为0到100),从js脚本、css、多媒体资源等多个方面,80分应该是网站的最低目标。 不过 Yslow 本身也有些局限性: 1.最新版的火狐还有谷歌浏览器已经无法使用了 2.其次 Yslow 主要是页面结构分析,但是现在界面主要靠 js 绘制例如 react 等 3.而且 Yslow 本身主要关注的是 PC 端

数据库被无情删除,记一次恢复历程

二次信任 提交于 2020-02-29 21:56:50
昨天下午,客户发截图来说系统异常,哥的第一时间就是去看tomcat日志,直接说客户表不存在,我很好奇,这个明明有,不然早都报错了。于是打开数据库看看,顿时傻眼了!整个数据库都没了,肯定是被攻击了,最搞笑的是多了一个数据库,名字直接是qq12344,类似这样,好吧,意思就是要钱给你恢复。然后哥加了这个qq,但是并不打算给钱,只是好奇随便加下; 然后同事给我发了一个博格地址( http://blog.csdn.net/rogerzhanglijie/article/details/37902611 ),看了下是用binlog,这方面我还没接触过,于是先看看文章;看完之后大概知道是什么情况了,于是准备开始小试牛刀。 首先我查看下是不是开启binlog了,打开mysql配置:vim /etc/my.cnf; 万幸!开启了。 然后找到了日志存放的目录,由于哥是一个小白,不知道日志目录,于是用最笨的方法, find -/ '*mysql-bin*'; 于是搜索出了一大堆文件,再找到mysql-bin.00001结尾的文件,因为binlog日志文件是这个格式。。于是乎就找到日志了。。 现在找到日志之后,开始按前面提到的博客地址教程,使用mysqlbinlog生产.txt文件;先cd 到mysql的bin目录下,然后执行: mysqlbinlog /data/mysql/mysql-bin

使用NanoHTTPD在android实现web迷你服务器

≯℡__Kan透↙ 提交于 2020-02-29 12:47:51
NanoHTTPD的官方代码如下 import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.net.URLEncoder; import java.util.Date; import java.util.Enumeration; import java.util.Vector; import java.util.Hashtable; import java.util.Locale; import java.util.Properties; import java.util.StringTokenizer; import java