E
E
Evgeny Elchev2010-12-12 08:11:18
PHP
Evgeny Elchev, 2010-12-12 08:11:18

Highly loaded PHP project?

Good day. Tell me what you need to consider, what features to add to the project so that it can withstand a large flow of visitors, or advise literature on this topic.
PS: The project will most likely be implemented on the Zend Framework.

Answer the question

In order to leave comments, you need to log in

7 answer(s)
S
suregood, 2010-12-12
@suregood

  • Cache as much as possible
  • When accessing the page, there should be a minimum number of requests to the database, and it is better without them at all
  • Use the RAM to the maximum, at one time the transfer of some elements in the project from MySQL to memcache gave a big increase
  • Think in advance about server architecture and how servers communicate with each other for greater scalability
  • Ditch Apache for Nginx+php-fpm

R
rPman, 2010-12-12
@rPman

in pursuit of the above:
1. if SEO allows, try to do more on the client side (javascript templates/ajax/..) and less on the
server reliability): update scripts (and in the project it is necessary to take into account that its code and data can be updated), backup and restore from backup, cluster management - adding / deleting / configuring nodes, etc.
It's just that with poor organization, highly loaded projects fail more often :) because there are more corny 'testers'.
3. do not chase technologies, do not pile up frameworks, plug-ins and libraries on top of each other, it is always useful to be simpler, and perhaps your bike in some places may be preferable (I'm not talking about cases where almost the entire task is already fully solved something ready-made, there are always nuances)
4. sql optimization is cool, but very often nosql solutions (+ something for serialization) completely replace sql (and they certainly win in terms of speed), as an option - combined solutions (but the latter generates a little more problems when updating the structure and code)
* memcached is by the way also nosql, but it is not a storage (does not guarantee that if the data is saved, then it can be retrieved)
* here in storage solutions you should not fence your own bicycles and you should not invent a nightmare on files. BUT, for example, small static (rarely changed) parts of the database are much more efficient to load directly in the form of a PHP array (up to the size of hundreds of kb, the php variable initialization code works much faster than any database framework, not to mention the overhead costs for connecting to the database, etc. )
PS be ready to rewrite everything, this is relevant for developing projects, i.e. first, using complex but ready-made tools, something working is implemented, on which the business logic is tested, then, when this monster becomes simply clumsy, based on the finished one, from scratch, a new project is implemented, without growth sores, fast and simple.

W
web4_0, 2010-12-12
@web4_0

As for the literature, since the database, in most cases, is a weak point, I highly recommend the
MySQL book. Performance Optimization 2nd Edition by Peter Zaitsev et al.

V
Vyacheslav Plisko, 2010-12-12
@AmdY

you already decide, highlod or zend framework.
and most importantly, do not listen to those who undertake to give advice with such small input data. highloads are different and bottle places can be in different places.
by the way, highlod developers hold seminars spb-borodin.livejournal.com/596.html , there are a lot of articles on the topic, read as much as possible to see the difference and understand what your project needs.
but it’s better to make the site as usual, if it works, you will find difficult places and rewrite it. anyway, without experience, it will not be possible to design the correct architecture right away.

A
admin4eg, 2010-12-12
@admin4eg

I keep a couple of highloals, I see everything from the admin side.
The most trouble is that there is a plug to the database in the number of requests. today it's mysql, and you have to be ready to switch to something like postgres if it "shoots".
it follows from here that it is necessary to dribble in the direction of caching query sculls in memcached or the like.
the second thing that concerned me was the generation of content and, again, storing it in a memcashed. apart from the fact that it is already stored in eA.
Opera is easier to build than percent.

A
alexber220, 2012-01-02
@alexber220

projects do not immediately become highly loaded. usually everything is implemented in a short time, then the project is launched, bugs are fixed, the load gradually increases, the realization comes that the server will soon start to choke, a weak spot is determined, it is optimized, each time it becomes more difficult to optimize, that is, more expensive than buying / upgrading hardware , upgrade, buy. I wish the topikstarter to achieve a high load of his project.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question