首页 文章 精选 留言 我的

精选列表

搜索[软件构建],共10000篇文章
优秀的个人博客,低调大师

Varnish+Xcache构建高性能WEB构架初探

本文主要讲述web优化方案和缓存工具的调研及使用。根据目前的测试结果来看,采用varnish+xcache作为 apache和php缓存这种架构具有高并发、高稳定性,易扩展等优点,服务器的动态请求处理能力是之前的7倍之多。通过分析发现,目前对服务器的负载主要是在cpu使用方面,随着流量的增加瓶颈也将出现在cpu方面,而内存和IO方面都不是问题。针对这样的情况,我们就要研究怎么去降低cpu的负载,消除或降低系统的瓶颈。业务特点分析U服务采用的是LAMP(Linux Apache mysql php)架构,而服务本身的逻辑比较简单,就是根据不同的url返回特定的页面内容,而这些页面内容基本是不会变的。整个过程是由php动态完成的,不需 要和其他服务器交互。在一个请求的响应过程中,系统cpu的消耗基本都在php处理上面。我们要做的就是尽量减少php的动态处理。优化方案调研性能优化通常的方法是采用缓存策略。根据U服务的业务特点,优化主要从两个方面进行,php缓存和前端缓存,原理图如下: Php缓存调研每次HTTP请求PHP页面时,PHP代码都会被解析和翻译为操作码(PHP 引擎直接执行的原语指令--类似于汇编语言)再执行。在要求很低或可忽略的情况下,服务器看上去能立即执行这个复杂的解释过程。但是一旦处理的页面增加, 重复工作就会对服务器造成很大的负担。在某些情况下,“编译”PHP代码的时间会远远超过执行该代码所需的时间,并且会对服务器负载造成很大压力。Php缓存主要是缓存opcode,避免重复编译PHP代码。目前针对php的内存缓存策略主要有 memcache 、 eAccelerator 、 xcache 和 APC 。Memcache是一种基于网络的缓存策略,是 一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检 索的结果等。从memcache的特点来看,更适合用于分布式数据库和分布式计算领域。光从页面缓存和加速角度来说远不及eAccelerator、 xcache和APC。eAccelerator、 xcache 和 APC 差 不多,都是自由开放源码php加速器,优化和动态内容缓存,能够大大提高php脚本性能。它使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 其中xcache是一种比较新的加速器,是eAccelerator的替代产品,更加稳定和高效,目前shifen前端已在使用。Http前端缓存调研针对HTTP的内存缓存策略使用得比较多就是 squid 和 varnish 。Squid 是一种在Linux下使用得比较 多的优秀的代理服务器,针对web用户来说,它还是一个高性能的代理缓存服务器,它将数据缓存在内存中,同时也缓存DNS的查询结果,可以加快网络浏览的 速度,提高客户机的访问命中率。Squid是目前使用的最广的HTTP加速器之一,目前在百度使用得还很少。Varnish 是另一种高性能的开源 HTTP加速器。Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算 机系统的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此Squid Cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构。目前国内有些门户网站如新浪,腾讯正在使用。缓存工具性能对比及选择测试平台: HOST:tc-un-ct00.tc OS: Linux 2.6.9_5-4-0-2 #1 SMP CPU: Intel(R) Xeon(R) CPU 5150 @ 2.66GHz × 4 MEM: 8GB 测试数据 : jx-rcv00 20081028日18:00 – 19:00 间的数据 压力工具 : pfmtestPhp缓存工具对比测试几个主流php缓存工具性能对比测试如下: 前端缓存工具对比测试apache,squid+apache,varnish+apache 性能对比如下: 测试结论Php缓存工具测试中,xcache在响应时间,cpu占用的方面均有最佳的表现;另一方面,从前端缓存测试结果来看,varnish更适合U服务的全动态服务。Varnish及xcache的使用Varnish的使用varnish 工具的介绍及详细使用方法参见http://varnish.projects.linpro.no/Xcache的使用Xcache的介绍及详细使用方法参加http://xcache.lighttpd.net/ 【本文首发于: 百度运维空间】 http://hi.baidu.com/ops_bd/blog/item/83601d38e33ffcd17c1e71ca.html 【 关注百度技术沙龙】 本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/748272 ,如需转载请自行联系原作者

优秀的个人博客,低调大师

Windows Docker镜像构建之Oracle客户端

新版的Windows 2016已经支持原生Docker,现在也将部分服务往Docker上迁移进行测试。 环境中有使用.net 3.5和.net 4.0以及有使用Oracle客户端,因此Web容器就需要安装Oracle客户端 Dockerfile 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 FROMmicrosoft /iis #install.NET3.5 ADDsxs /sxs RUNDism /online /enable-feature /featurename :NetFX3 /All /Source :C:\sxs /LimitAccess &&del /S /Q C:\sxs #installASP.NET4.5 RUNdism /online /enable-feature /all /featurename :NetFx4 /featurename :IIS-ApplicationInit /featurename :IIS-ASPNET45 /featurename :IIS-ASPNET /NoRestart #enablewindowseventlog RUNpowershell.exe- command Set-ItemPropertyHKLM:\SYSTEM\CurrentControlSet\Control\WMI\Autologger\EventLog-ApplicationStart1 #setIISlogfields RUN /windows/system32/inetsrv/appcmd .exe set config /section :system.applicationHost /sites /siteDefaults .logFile.logExtFileFlags: "Date,Time,ClientIP,UserName,SiteName,ServerIP,Method,UriStem,UriQuery,HttpStatus,Win32Status,TimeTaken,ServerPort,UserAgent,Referer,HttpSubStatus" /commit :apphost #installOracleClient ADDwin64_11gR2_client.zip /win64_11gR2_client .zip ADDunzip.exe /unzip .exe RUN /unzip .exe /win64_11gR2_client .zip&&del /S /Q win64_11gR2_client.zip ADDclient.rsp /client/client .rsp RUN /client/setup .exe-silent-force-noconsole-ignoreSysPrereqs-ignorePrereq-waitforcompletion-responseFileC:\client\client.rsp&&del /S /Q client #RUNcaclsc:\app/T/E/C/Gusers:r #deploywebapp #COPYpublish/inetpub/wwwroot/html #setentrypointscript ADDSetHostsAndStartMonitoring.cmd\SetHostsAndStartMonitoring.cmd ENTRYPOINT[ "C:\\SetHostsAndStartMonitoring.cmd" ] #declarevolumes VOLUME[ "c:/inetpub/logs/LogFiles" , "C:/inetpub/wwwroot/html" ] Dockerfile涉及的文件内容有 sxs #在Windows Server 2016 安装包的\sources\sxs\目录 unzip.exe #Oracle Client客户端安装包的client\install目录下 win64_11gR2_client.zip #自行到官方下载 client.rsp #Oracle客户端安装响应文件 SetHostsAndStartMonitoring.cmd client.rsp 1 2 3 4 5 6 7 8 9 10 11 12 13 oracle. install .responseFileVersion=http: //www .oracle.com /2007/install/rspfmt_clientinstall_response_schema_v11_2_0 ORACLE_HOSTNAME= UNIX_GROUP_NAME= INVENTORY_LOCATION=C:\ProgramFiles\Oracle\Inventory SELECTED_LANGUAGES=zh_CN,en ORACLE_HOME=C:\app\Administrator\product\11.2.0\client_1 ORACLE_BASE=C:\app\Administrator oracle. install .client.installType=Runtime oracle. install .client.customComponents= "oracle.precomp:11.2.0.1.0" , "oracle.ons:11.2.0.0.0" , "oracle.oraolap.mgmt:11.2.0.1.0" , "oracle.rdbms.scheduler:11.2.0.1.0" oracle. install .client.customComponents= oracle. install .client.oramtsPortNumber=49152 oracle. install .client.schedulerAgentHostName= oracle. install .client.schedulerAgentPortNumber= SetHostsAndStartMonitoring.cmd 1 2 3 4 5 6 echo %HOST%>> /Windows/System32/drivers/etc/hosts /windows/system32/inetsrv/appcmd .exedeletesite "DefaultWebSite/" /windows/system32/inetsrv/appcmd .exeaddapppool /name : "%site_name%" /managedRuntimeVersion : "v%site_version%.0" /managedPipelineMode :Classic-queueLength:65535 /windows/system32/inetsrv/appcmd .exeaddsite /name : "%site_name%" /physicalPath : "c:\inetpub\wwwroot\html" -serverAutoStart: true /bindings :http: // *:80 /windows/system32/inetsrv/appcmd .exe set site /site .name: "%site_name%" /[path= '/' ].applicationPool: "%site_name%" c:\ServiceMonitor.exew3svc 文件中涉及到三个环境变量 HOST #因为windows Docker无法通过--add-host指host这里通过这种方法指host site_name #站点域名 site_version #.net版本 Docker启动示例: 1 dockerrun-d-p80-esite_name=fengwan.blog.51cto.com-esite_version=4-ehost= "192.168.2.2db.51cto.com" - v c: /webroot/fengwan :c: /inetpub/wwwroot/html - v c: /logs :c: /inetpub/logs/logFiles image_name 本文转自 rong341233 51CTO博客,原文链接:http://blog.51cto.com/fengwan/1943280

优秀的个人博客,低调大师

如何利用docker 构建golang线上部署环境

公司最近开发了一个项目是用golang 写的,现在要部署到线上环境去,又不想在服务器上装单独的golang,决定用docker 封装下,直接打到镜像里面,然后就直接在hub.docker.com上面搜了下golang的镜像,直接就docker pull golang 最新的是1.9的版本 然后参考官方的文档弄了下Dockerfile大概是这样: FROM golang MAINTAINER jackluo #指定工作目录 WORKDIR /go/src/ActivitApi COPY . . CMD ["/bin/bash", "build.sh"] build.sh里面的代码是这样,大概就是进入目录,编译golang ,最后运行编译好的server 文件 #!/usr/bin/env bash cd /go/src/ActivitApi/server && go build && ./server 其实可以直接运行编译好的.server 文件,因为每次启动的时候,它才去编译,可能启个服务,需要几秒钟的时间,我们写的大概编译再启动需要10秒左右的时间 最后启用docker #!/usr/bin/env bash docker stop apihdtest docker rm apihdtest docker run -d --name apihdtest \ -p 17071:17071 \ --link mysql:mysql.io \ --link redis:redis.io \ -v $(pwd):/go/src/ActivitApi \ activityapi #docker exec -it apihdtest /bin/bash /go/src/ActivitApi/build.sh 然后这个就启起来了 最后,我们看下完整的截图吧 仅参考.

优秀的个人博客,低调大师

Apache Spark探秘:利用Intellij IDEA构建开发环境

1)准备工作 1) 安装JDK 6或者JDK 7 或者JDK8 mac 的 参看http://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html 2) 安装scala 2.10.x (注意版本) 参看 http://www.cnblogs.com/xd502djj/p/6546514.html 2)下载Intellij IDEA最新版(本文以IntelliJ IDEA Community Edition 13.1.1为例说明,不同版本,界面布局可能不同):http://www.jetbrains.com/idea/download/ 3)将下载的Intellij IDEA解压后,安装scala插件,流程如下: 依次选择“Configure”–> “Plugins”–> “Browse repositories”,输入scala,然后安装即可 (2)搭建Spark源码阅读环境(需要联网) 一种方法是直接依次选择“import project”–> 选择spark所在目录 –> “SBT”,之后intellij会自动识别SBT文件,并下载依赖的外部jar包,整个流程用时非常长,取决于机器的网络环境(不建议在windows下操作,可能遇到各种问题),一般需花费几十分钟到几个小时。注意,下载过程会用到git,因此应该事先安装了git。 第二种方法是首先在linux操作系统上生成intellij项目文件,然后在intellij IDEA中直接通过“Open Project”打开项目即可。在linux上生成intellij项目文件的方法(需要安装git,不需要安装scala,sbt会自动下载)是:在spark源代码根目录下,输入sbt/sbt gen-idea 注:如果你在windows下阅读源代码,建议先在linux下生成项目文件,然后导入到windows中的intellij IDEA中。 (3)搭建Spark开发环境 在intellij IDEA中创建scala project,并依次选择“File”–> “project structure” –> “Libraries”,选择“+”,将spark-hadoop 对应的包导入,比如导入spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar(只需导入该jar包,其他不需要),如果IDE没有识别scala 库,则需要以同样方式将scala库导入。之后开发scala程序即可: 编写完scala程序后,可以直接在intellij中,以local模式运行,方法如下: 点击“Run”–> “Run Configurations”,在弹出的框中对应栏中填写“local”,表示将该参数传递给main函数,如下图所示,之后点击“Run”–> “Run”运行程序即可。 如果想把程序打成jar包,通过命令行的形式运行在spark 集群中,可以按照以下步骤操作: 依次选择“File”–> “Project Structure” –> “Artifact”,选择“+”–> “Jar” –> “From Modules with dependencies”,选择main函数,并在弹出框中选择输出jar位置,并选择“OK”。 最后依次选择“Build”–> “Build Artifact”编译生成jar包。具体如下图所示。 原创文章,转载请注明:转载自董的博客 本文链接地址:http://dongxicheng.org/framework-on-yarn/apache-spark-intellij-idea/ 作者:Dong,作者介绍:http://dongxicheng.org/about/ 本博客的文章集合:http://dongxicheng.org/recommend/ 本文转自茄子_2008博客园博客,原文链接:http://www.cnblogs.com/xd502djj/p/6551293.html,如需转载请自行联系原作者。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册