Назад | Перейти на главную страницу

Будет ли Apache2 работать быстрее, если у меня больше процессора?

У меня есть облачный сервер: 5120 ОЗУ и 4,6 ГГц

У меня вопрос: если я добавлю больше ЦП (11,5 ГГц), будет ли время загрузки страниц выше? Я имею в виду, всегда ли это постепенно? Больше ЦП = более быстрая загрузка страницы? А если нет, то как это работает и как я могу узнать об этом подробнее?

ОБНОВИТЬ: Ответ Symcbean был очень ясным. Но есть еще кое-что, чего я не понимаю (и то, что я нахожу в Google, многие люди не понимают). Я попытался выразить это в метафоре:
Допустим, у меня есть ведро с водой (ведро с водой = процесс PHP, с кешированием и т. Д.). Я хочу вылить ведро в воронку. (конец воронки = скорость сервера, чем больше конец воронки, тем быстрее по нему течет вода)
Если у меня конец воронки 0,5 дюйма, он проходит медленно. Если у меня один дюйм, он идет быстрее. Но если конец воронки (скажем) 10 дюймов, не имеет значения, 10 дюймов у меня или 20 дюймов, вода проходит через него с той же скоростью.
Итак, с этим метапередом я имею в виду; как мне узнать, что я использую 100% емкости, и как я узнаю, что мне не нужно больше ...?

PS: Я был бы очень признателен, если бы кто-нибудь мог объяснить, что такое макс, и как это на самом деле работает или как я могу это узнать?

PPS: это результат, когда я запускаю 'top'

top - 23:06:18 up 54 days,  6:08,  1 user,  load average: 0.51, 0.43, 0.47
Tasks: 107 total,   2 running, 105 sleeping,   0 stopped,   0 zombie
Cpu(s): 28.1%us,  1.5%sy,  0.0%ni, 70.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.2%st
Mem:   4966748k total,  4493968k used,   472780k free,   241436k buffers
Swap:  4194300k total,   123252k used,  4071048k free,  2836028k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                       
16432 root      20   0 1115m 283m  30m R   95  5.8   1:11.39 php                                                                                                                                            
16422 www-data  20   0  927m  45m  21m S   18  0.9   0:00.53 apache2                                                                                                                                        
20270 mysql     20   0 2327m 330m 5500 S    7  6.8 474:19.11 mysqld                                                                                                                                         
  617 n2        20   0 14268 1140  488 S    1  0.0 182:58.64 n2txd                                                                                                                                          
30212 root      20   0     0    0    0 S    1  0.0  24:50.48 flush-202:1                                                                                                                                    
26848 root      20   0 99424 1108  856 S    0  0.0   2:47.63 sendmail-mta                                                                                                                                   
    1 root      20   0 24188 1556  872 S    0  0.0   0:09.09 init                                                                                                                                           
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd                                                                                                                                       
    3 root      20   0     0    0    0 S    0  0.0   0:48.36 ksoftirqd/0                                                                                                                                    
    4 root      20   0     0    0    0 S    0  0.0   1:27.21 kworker/0:0                                                                                                                                    
    5 root      20   0     0    0    0 S    0  0.0   0:00.05 kworker/u:0                                                                                                                                    
    6 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0                                                                                                                                    
    7 root      RT   0     0    0    0 S    0  0.0   0:26.69 watchdog/0                                                                                                                                     
    8 root      RT   0     0    0    0 S    0  0.0  21841:40 migration/1                                                                                                                                    
    9 root      20   0     0    0    0 S    0  0.0   0:00.00 kworker/1:0                                                                                                                                    
   10 root      20   0     0    0    0 S    0  0.0   0:56.84 ksoftirqd/1                                                                                                                                    
   11 root      RT   0     0    0    0 S    0  0.0   0:23.78 watchdog/1                                                                                                                                     
   12 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/2                                                                                                                                    
   13 root      20   0     0    0    0 S    0  0.0   0:00.00 kworker/2:0                                                                                                                                    
   14 root      20   0     0    0    0 S    0  0.0   0:48.05 ksoftirqd/2                                                                                                                                    
   15 root      RT   0     0    0    0 S    0  0.0   0:19.11 watchdog/2                                                                                                                                     
   16 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/3                                                                                                                                    
   17 root      20   0     0    0    0 S    0  0.0   0:00.00 kworker/3:0                                                                                                                                    
   18 root      20   0     0    0    0 S    0  0.0   0:40.08 ksoftirqd/3                                                                                                                                    
   19 root      RT   0     0    0    0 S    0  0.0   0:19.24 watchdog/3                                                                                                                                     
   20 root       0 -20     0    0    0 S    0  0.0   0:00.00 cpuset                                                                                                                                         
   21 root       0 -20     0    0    0 S    0  0.0   0:00.00 khelper                                                                                                                                        
   22 root      20   0     0    0    0 S    0  0.0   0:00.00 kdevtmpfs                                                                                                                                      
   23 root       0 -20     0    0    0 S    0  0.0   0:00.00 netns                                                                                                                                          
   24 root      20   0     0    0    0 S    0  0.0   0:00.00 kworker/u:1                                                                                                                                    
   25 root      20   0     0    0    0 S    0  0.0   0:00.00 xenwatch                                                                                                                                       
   26 root      20   0     0    0    0 S    0  0.0   0:00.00 xenbus                                                                                                                                         
   27 root      20   0     0    0    0 S    0  0.0   0:22.29 sync_supers                                                                                                                                    
   28 root      20   0     0    0    0 S    0  0.0   0:00.42 bdi-default                                                                                                                                    
   29 root       0 -20     0    0    0 S    0  0.0   0:00.00 kintegrityd                                                                                                                                    
   30 root       0 -20     0    0    0 S    0  0.0   0:00.00 kblockd                                                                                                                                        
   31 root      20   0     0    0    0 S    0  0.0   1:57.23 kworker/2:1                                                                                                                                    
   32 root       0 -20     0    0    0 S    0  0.0   0:00.00 ata_sff                                                                                                                                        
   33 root      20   0     0    0    0 S    0  0.0   0:00.00 khubd                                                                                                                                          
   34 root       0 -20     0    0    0 S    0  0.0   0:00.00 md                                                                                                                                             
   36 root      20   0     0    0    0 S    0  0.0   0:01.45 khungtaskd                                                                                                                                     
   37 root      20   0     0    0    0 S    0  0.0   0:29.28 kswapd0                                                                                                                                        
   38 root      25   5     0    0    0 S    0  0.0   0:00.00 ksmd                                                                                                                                           
   39 root      20   0     0    0    0 S    0  0.0   0:00.00 fsnotify_mark                                                                                                                                  
   40 root      20   0     0    0    0 S    0  0.0   0:00.00 ecryptfs-kthrea                                                                                                                                
   41 root       0 -20     0    0    0 S    0  0.0   0:00.00 crypto                                                                                                                                         
   49 root       0 -20     0    0    0 S    0  0.0   0:00.00 kthrotld                                                                                                                                          50 root      20   0     0    0    0 S    0  0.0   0:00.00 khvcd                                                                                                                                             51 root      20   0     0    0    0 S    0  0.0   1:19.07 kworker/3:1                                                                                                                                       70 root       0 -20     0    0    0 S    0  0.0   0:00.00 devfreq_wq                                                                                                                                        71 root      20   0     0    0    0 S    0  0.0   1:03.05 kworker/0:1                                                                                                                                      190 root      20   0     0    0    0 S    0  0.0   1:31.64 kworker/1:1                                                                                                                                      193 root      20   0     0    0    0 S    0  0.0   2:52.19 jbd2/xvda1-8        

Похоже, узким местом вашего процессора является PHP, а не Apache.

Кажется, у вас 4 ядра ЦП, но процесс PHP выполняется только на одном из них; в зависимости от того, как вы все настроили, PHP может не использовать все доступные ядра ЦП для различных запросов. Сколько запросов было обработано в то время, когда нагрузка находилась в этом состоянии?

Если PHP работает только с одним потоком, вам необходимо настроить его для выполнения разных запросов на разных ядрах, чтобы использовать существующую мощность.

Если в это время PHP просто выполняет один запрос, и этот запрос все еще возвращается слишком медленно, то большее количество ядер не поможет, и вам потребуется выполнить некоторую оптимизацию и кеширование.

Не уверен, где Шейн видит 4 процессора в вашем верхнем продукте. Конечно, их больше одного. Однако ваша средняя загрузка показывает, что никогда не используется более половины ваших процессоров. Следовательно, добавление большего количества процессоров не сделает его быстрее.

Время отклика страницы очень сильно отличается от времени выполнения PHP. Обычно время загрузки страницы будет в 6-10 раз больше, чем время генерации HTML (при условии, что PHP относительно эффективен) - разница в основном связана с тем, что происходит на сетевом уровне и в браузере. Такие инструменты, как медленный и webpagetest поможет улучшить производительность внешнего интерфейса. Я бы порекомендовал приобрести хорошую книгу по этой теме - например, вот этот. Есть много хороших постов, о которых идет речь веб-производительность здесь и о Производительность MySQL здесь.

Такие вещи, как верхняя часть, средняя загрузка, использование процессора, бесплатно, vmstat и другие, хороши для того, чтобы рассказать вам, как ограничена производительность вашего сервера, но, как и выше, это должно быть только очень небольшой частью истории жизненного цикла страницы. Судя по предоставленному вами снимку, оборудование не облагается чрезмерными налогами (может быть узкое место ввода-вывода, но это трудно увидеть по этим показателям).

Если у вас есть основания подозревать, что ваш PHP-код довольно медленный, начните регистрировать и анализировать данные вашего запроса. Сколько времени требуется для генерации ваших PHP-запросов? Какое время загрузки вашей страницы?

Одна вещь, которая действительно выделяется из верхнего вывода, который вы показали, - это то, что есть только один видимый экземпляр PHP и единственный экземпляр Apache. Как настроен Apache? Какой MPM? Как это связано с PHP? Если вы используете CGI, вы должны получить большие улучшения, переключившись на PHP-fpm или mod_php. Ты используешь кеш кода операции?

Ваш mysqld имеет довольно много циклов ЦП - вы можете начать анализировать журнал запросов и настраивать его. Попробуйте бежать mysqltuner против вашего экземпляра.

Я понимаю, что задаю здесь много вопросов, но решение «как ускорить работу моего веб-сайта» заняло бы очень большую книгу. Мне потребовалось бы около 2 дней работы, чтобы правильно настроить сервер для сбора данных, чтобы полностью проанализировать его производительность - и по крайней мере 5 дней, чтобы провести анализ - и это прежде, чем приступить к поиску решений проблем, то есть вам вряд ли получим конкретный ответ здесь, на Stack Overflow (я просто пытаюсь указать вам, как задать правильные вопросы).