Maison base de données tutoriel mysql 《构建高性能Web站点》学习笔记

《构建高性能Web站点》学习笔记

Jun 07, 2016 pm 04:33 PM
auteur 学习 笔记

《构建高性能Web站点》 作者郭欣,电子工业出版社,2009.8 ? 学习笔记+书评推荐 去年10月份时听同事推荐买的这本书,由于当时实践经验不是特别丰富,草草读过后感触并不是特别深。最近做了一个社交网站类型的项目,语言PHP,也用到了流行的Memcached key-val

《构建高性能Web站点》 作者郭欣,电子工业出版社,2009.8 ? 学习笔记+书评推荐

去年10月份时听同事推荐买的这本书,由于当时实践经验不是特别丰富,草草读过后感触并不是特别深。最近做了一个社交网站类型的项目,语言PHP,也用到了流行的Memcached key-value缓存、eAccelerator缓存加速、LVS负载均衡、rsync集群中的文件同步、MySQL的主从复制/读写分离/水平分区、性能监控、反向代理。在架构师的指导下,综合运用上述技术完成了编码开发,也算是小有心得。回过头了重新翻看这本书,感悟又比上次要深刻了许多,有一种英雄所见略同的快感。

这本书的名字起的很”大”,但其实内容一点都不浮躁,作者有着技术人那种“质疑一切,眼见为实”的作派,用一个一个真实的实验,像讲故事一样娓娓道来,逻辑清晰、原理点透,关键技术点不回避,一看就是出自大师之手。

每一个章节讲述一个独立的话题,不过最好还是不要跳着看,顺着作者的思路读下来效果会更好。第2、3章讲述基础理论知识,第4~8、10章介绍Web应用中常见的6种缓存,第9、12章介绍组件分离和负载均衡,第11、16章讲述数据库优化,第13-15章介绍集群中的文件分发/同步,最后17、18章分别介绍了一下分布式计算和性能监控。

第3章是一堂生动的操作系统课,以“服务器并发处理能力”为话题,以apache bench为工具,一步一步展开。其中比较精彩的部分是,对几种多路I/O就绪通知方式的比较,select、poll、epoll有什么异同,分别适合哪种Web应用场景。

第4章介绍静态缓存,测试了无缓存、使用Smarty cache、使用XCache的效果对比;第5章介绍了字节码缓存,使用APC、eAccelerator、XCache opcode来预编译php为字节码,避免脚本每次都要解释执行的开销;第6章介绍了浏览器缓存,对于开发编码阶段来说,浏览器缓存是让人深恶痛绝的,但对于性能优化阶段来说,这又是很重要的一环,本章详细介绍了Last-Modified机制、Expires机制;第7章介绍了服务器缓存,使用apache的mod_disk_cache模块来实现;第8章介绍了反向代理缓存,Varnish是Facebook也在用的http反向代理加速器,实验证明确实效果明显;第10章介绍了Memcached缓存,之前5章说的都是代码都完成后的优化手段,都是out of box开箱即用的组件,而Memcached只是一个key-value数据库,必须在代码中用才能起到优化的效果,这里介绍了Memcached存在的意义和使用的思路。

(顺便说下,我在这个项目中就用到了eAccelerator来优化性能,测试组在做压力测试的时候发现CPU使用率特别高,安装了eAccelerator组件后,CPU使用率从80%左右降到了20%,吞吐率上升了接近3倍!PHP是一个解释型语言,每次执行都要重复进行语法分析、词法分析、执行,而采用了类似的opcode缓存组件后,就可以避免重复多余的分析步骤,直接以机器码来执行,CPU使用率自然就降下来了。)

第12章介绍负载均衡,从最简单的HTTP重定向说起、DNS负载均衡、反向代理负载均衡,以及LVS的三种配置方式。之前做项目就用到了LVS,当时按照网上的教程配置完,对一些原理还不是摸的特别透,比如说在LVS-DR直接路由模式下,需要配置eth0:0 IP别名,设置arp_ignore,网上没有任何教程把这点理论基础说清楚,计算机网络学的不扎实真还就不好理解这些,而本书中就把这些知识点都点透,说的特别到位。

数据库优化是个大话题,第11章讲述了基本的优化策略与思路,包括分析报告、执行计划、索引、锁;第16章介绍了通过扩展数据库来实现优化,总体思路是使用主从模式来实现读写分离,主数据库用来进行写操作,若干个从数据库用来进行查询操作,使用数据库内置的复制机制来实现从主数据库到从数据库的同步。

顺便说下,国内有个开源项目Amoeba,是阿里巴巴的一个大牛开发的Java项目,是一个介于应用程序与数据库之间的中间件,用来实现垂直/水平分库和读写分离。

集群中的服务器,为了保证各个节点拥有一样的程序代码和文件,必须要有一个文件共享机制。第13章就介绍了共享文件系统NFS,类似于网吧的无盘系统,多台服务器共用一个存储服务器。第14章介绍了内容分发/同步,包括scp、WebDAV、rsync,说白了就是把文件在多台服务器上传来传去。目前我在做的这个项目就大量使用了rsync用来在多台服务器间同步代码和图片,使用crontab定时任务来循环执行脚本。第16章介绍了分布式文件系统MogileFS、Hadoop,这个目前还没有用到,研究不深,暂且略过。

第18章介绍性能监控,使用Nmon来监控服务器状态,而Cacti是一个监控中心。我之前的项目使用的是Hyperic HQ监控工具,也有比较完善的监控功能、报表功能。

总的来说,这本书并不是一本操作手册,讲每一个知识点/工具时,都是这样一个思路:遇到了什么问题=>适合使用什么工具=>使用工具后效果如何=>为什么会产生这样的效果=>哪些场景适合使用哪些不适合。这本书正是这样一个互联网应用优化的路线图,从方方面面介绍了策略,而具体的工具安装、操作,网上教程很多,原理搞懂了,操作仅仅是最简单的工作而已。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment supprimer les notes Xiaohongshu Comment supprimer les notes Xiaohongshu Mar 21, 2024 pm 08:12 PM

Comment supprimer les notes de Xiaohongshu ? Les notes peuvent être modifiées dans l'application Xiaohongshu. La plupart des utilisateurs ne savent pas comment supprimer les notes de Xiaohongshu. Ensuite, l'éditeur propose aux utilisateurs des images et des textes expliquant comment supprimer les notes de Xiaohongshu. un regard ensemble ! Tutoriel d'utilisation de Xiaohongshu Comment supprimer les notes de Xiaohongshu 1. Ouvrez d'abord l'application Xiaohongshu et entrez dans la page principale, sélectionnez [Moi] dans le coin inférieur droit pour accéder à la zone spéciale 2. Ensuite, dans la zone Ma, cliquez sur la page de note comme suit : indiqué ci-dessous, sélectionnez la note que vous souhaitez supprimer ; 3. Accédez à la page de notes, cliquez sur [trois points] dans le coin supérieur droit ; 4. Enfin, la barre de fonctions s'agrandira en bas, cliquez sur [Supprimer] pour terminer.

Que dois-je faire si les notes que j'ai publiées sur Xiaohongshu sont manquantes ? Quelle est la raison pour laquelle les notes qu'il vient d'envoyer sont introuvables ? Que dois-je faire si les notes que j'ai publiées sur Xiaohongshu sont manquantes ? Quelle est la raison pour laquelle les notes qu'il vient d'envoyer sont introuvables ? Mar 21, 2024 pm 09:30 PM

En tant qu'utilisateur de Xiaohongshu, nous avons tous été confrontés à la situation où les notes publiées ont soudainement disparu, ce qui est sans aucun doute déroutant et inquiétant. Dans ce cas, que devons-nous faire ? Cet article se concentrera sur le thème « Que faire si les notes publiées par Xiaohongshu sont manquantes » et vous donnera une réponse détaillée. 1. Que dois-je faire si les notes publiées par Xiaohongshu manquent ? Premièrement, ne paniquez pas. Si vous constatez que vos notes manquent, il est essentiel de rester calme et de ne pas paniquer. Cela peut être dû à une défaillance du système de la plateforme ou à des erreurs opérationnelles. Vérifier les enregistrements de version est facile. Ouvrez simplement l'application Xiaohongshu et cliquez sur « Moi » → « Publier » → « Toutes les publications » pour afficher vos propres enregistrements de publication. Ici, vous pouvez facilement trouver des notes publiées précédemment. 3.Repost. Si trouvé

Comment ajouter des liens de produits dans les notes dans Xiaohongshu Tutoriel sur l'ajout de liens de produits dans les notes dans Xiaohongshu Comment ajouter des liens de produits dans les notes dans Xiaohongshu Tutoriel sur l'ajout de liens de produits dans les notes dans Xiaohongshu Mar 12, 2024 am 10:40 AM

Comment ajouter des liens de produits dans les notes dans Xiaohongshu ? Dans l'application Xiaohongshu, les utilisateurs peuvent non seulement parcourir divers contenus mais également faire des achats, il y a donc beaucoup de contenu sur les recommandations d'achat et le bon partage de produits dans cette application si vous êtes un expert. sur cette application, vous pouvez également partager des expériences d'achat, trouver des commerçants pour coopérer, ajouter des liens dans des notes, etc. De nombreuses personnes sont prêtes à utiliser cette application pour faire du shopping, car elle est non seulement pratique, mais elle a également de nombreux experts qui en feront recommandations. Vous pouvez parcourir du contenu intéressant et voir s'il existe des produits vestimentaires qui vous conviennent. Voyons comment ajouter des liens de produits aux notes ! Comment ajouter des liens de produits aux notes de Xiaohongshu Ouvrez l'application sur le bureau de votre téléphone mobile. Cliquez sur la page d'accueil de l'application

Apprenez à désinstaller complètement pip et à utiliser Python plus efficacement Apprenez à désinstaller complètement pip et à utiliser Python plus efficacement Jan 16, 2024 am 09:01 AM

Plus besoin de pip ? Venez apprendre à désinstaller pip efficacement ! Introduction : pip est l'un des outils de gestion de packages Python, qui peut facilement installer, mettre à niveau et désinstaller les packages Python. Cependant, nous devrons parfois désinstaller pip, peut-être parce que nous souhaitons utiliser un autre outil de gestion de packages, ou parce que nous devons vider complètement l'environnement Python. Cet article explique comment désinstaller pip efficacement et fournit des exemples de code spécifiques. 1. Méthodes de désinstallation de pip Ce qui suit présente deux méthodes courantes de désinstallation de pip.

Une plongée approfondie dans la palette de couleurs de matplotlib Une plongée approfondie dans la palette de couleurs de matplotlib Jan 09, 2024 pm 03:51 PM

Pour en savoir plus sur la table de couleurs matplotlib, vous avez besoin d'exemples de code spécifiques 1. Introduction matplotlib est une puissante bibliothèque de dessins Python. Elle fournit un riche ensemble de fonctions et d'outils de dessin qui peuvent être utilisés pour créer différents types de graphiques. La palette de couleurs (colormap) est un concept important dans matplotlib, qui détermine la palette de couleurs du graphique. Une étude approfondie de la table des couleurs matplotlib nous aidera à mieux maîtriser les fonctions de dessin de matplotlib et à rendre les dessins plus pratiques.

Révéler l'attrait du langage C : découvrir le potentiel des programmeurs Révéler l'attrait du langage C : découvrir le potentiel des programmeurs Feb 24, 2024 pm 11:21 PM

Le charme de l'apprentissage du langage C : libérer le potentiel des programmeurs Avec le développement continu de la technologie, la programmation informatique est devenue un domaine qui a beaucoup attiré l'attention. Parmi les nombreux langages de programmation, le langage C a toujours été apprécié des programmeurs. Sa simplicité, son efficacité et sa large application font de l’apprentissage du langage C la première étape pour de nombreuses personnes souhaitant entrer dans le domaine de la programmation. Cet article discutera du charme de l’apprentissage du langage C et de la manière de libérer le potentiel des programmeurs en apprenant le langage C. Tout d’abord, le charme de l’apprentissage du langage C réside dans sa simplicité. Comparé à d'autres langages de programmation, le langage C

Premiers pas avec Pygame : didacticiel complet d'installation et de configuration Premiers pas avec Pygame : didacticiel complet d'installation et de configuration Feb 19, 2024 pm 10:10 PM

Apprenez Pygame à partir de zéro : didacticiel complet d'installation et de configuration, exemples de code spécifiques requis Introduction : Pygame est une bibliothèque de développement de jeux open source développée à l'aide du langage de programmation Python. Elle fournit une multitude de fonctions et d'outils, permettant aux développeurs de créer facilement une variété de types. de jeu. Cet article vous aidera à apprendre Pygame à partir de zéro et fournira un didacticiel complet d'installation et de configuration, ainsi que des exemples de code spécifiques pour vous permettre de démarrer rapidement. Première partie : Installer Python et Pygame Tout d'abord, assurez-vous d'avoir

Apprenons ensemble à saisir le numéro racine dans Word Apprenons ensemble à saisir le numéro racine dans Word Mar 19, 2024 pm 08:52 PM

Lors de la modification du contenu du texte dans Word, vous devez parfois saisir des symboles de formule. Certains gars ne savent pas comment saisir le numéro racine dans Word, alors Xiaomian m'a demandé de partager avec mes amis un tutoriel sur la façon de saisir le numéro racine dans Word. J'espère que cela aidera mes amis. Tout d'abord, ouvrez le logiciel Word sur votre ordinateur, puis ouvrez le fichier que vous souhaitez modifier et déplacez le curseur vers l'emplacement où vous devez insérer le signe racine, reportez-vous à l'exemple d'image ci-dessous. 2. Sélectionnez [Insérer], puis sélectionnez [Formule] dans le symbole. Comme indiqué dans le cercle rouge dans l'image ci-dessous : 3. Sélectionnez ensuite [Insérer une nouvelle formule] ci-dessous. Comme indiqué dans le cercle rouge dans l'image ci-dessous : 4. Sélectionnez [Formule radicale], puis sélectionnez le signe racine approprié. Comme le montre le cercle rouge sur l'image ci-dessous :

See all articles