Page 1 of 2

Оптимизация производительности сервера

Posted: Tue Oct 29, 2013 8:17 pm
by dolci2006
Простите заранее, но я скорее разработчик чем администратор сервера. Поэтому моих знаний linux у меня хватает только чтобы настроить так лишбы работало.

Конфиг моей VPS:
1x ядро Xeon E5-2620
512 ram

Вот что выдает ab linux

Code: Select all

[root@VPS4469 ~]# ab -c 50 -n 500 site.ru/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking express-clinic.ru (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests


Server Software:        nginx
Server Hostname:        site.ru
Server Port:            80

Document Path:          /
Document Length:        14585 bytes

Concurrency Level:      50
Time taken for tests:   38.504763 seconds
Complete requests:      500
Failed requests:        191
   (Connect: 0, Length: 191, Exceptions: 0)
Write errors:           0
Total transferred:      4677209 bytes
HTML transferred:       4518989 bytes
Requests per second:    12.99 [#/sec] (mean)
Time per request:       3850.476 [ms] (mean)
Time per request:       77.010 [ms] (mean, across all concurrent requests)
Transfer rate:          118.61 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   2.7      0      10
Processing:     5 3672 5211.7   2129   35381
Waiting:        5 3648 5176.1   2116   35327
Total:          5 3673 5212.1   2129   35381

Percentage of the requests served within a certain time (ms)
  50%   2129
  66%   2881
  75%   4035
  80%   4445
  90%  10369
  95%  15829
  98%  21818
  99%  22470
 100%  35381 (longest request)
Как видите все не очень хорошо. Насколько знаю связка NGINX + APACHE при моей конфигурации может держать порядка 60-70 запросов в сек. на данном конфиге.

При этом у меня свободно порядка 100 мб RAM (Если смотреть без кешов и буферов).

Подскажите куда копать и что смотреть.

Re: Оптимизация производительности сервера

Posted: Wed Oct 30, 2013 12:36 pm
by skid
Главное преимущество в связке Nginx+Apache в том, что nginx обрабатывает статические файлы. Картинки, стили, текстовые файлы и так далее. Судя по тесту, вы проверяли индексную страницу, но в таком сценарии польза от nginx не будет заметна, так как ab рендерит страницу не целиком, а только скачивает html код индекса.

Для того чтобы оптимизировать скорость загрузки индекса, вы можете включить встроенное в nginx кэширование. Для этого необходимо отредактировать домен и указать шаблон caching.

Синтетические тесты редко могут отразить реальную картину. Наблюдайте за графиками на вкладке Grapsh, так вы сможете получить представление о реальной производительности.

Re: Оптимизация производительности сервера

Posted: Wed Oct 30, 2013 12:46 pm
by demian
dolci2006 wrote:Простите заранее, но я скорее разработчик чем администратор сервера. Поэтому моих знаний linux у меня хватает только чтобы настроить так лишбы работало.

Для реального теста используйте siege с полным списком урлов
например: siege -i -c50 -d5 --time=1H -f {файл со списком урлов}
-I имитация поведения пользователя
-с общее количество пользователей
-d задержка между переходом по ссылкам(в данном случае рендом в пределах 1-5)
--time=#{S,M,H} время теста

ab оченьт глупая синтетика... не дает даже приблизительной оценки.

Re: Оптимизация производительности сервера

Posted: Thu Dec 05, 2013 7:56 pm
by alexandrnew
а реально: что можно по-оптимизировать, и что нужно было бы сделать, а ?
в зависимости от хоста на котором крутится? у меня две виртуалки, на одном хосте.
одной дас 1 проц и 2 гб озу, стоит убунта
а второй дано 2 проца, и 6 гб озу, стоит центос с панелью - по данному тесту - 1я виртуалка отрабатывает в 2 раза больше запросов.
на ней тоже стоит апач, мускул и нгинкс для статики.

и кто скажет - что с данной панелью шустрее - убунта (кстати, уже стабильно на ней работает панель или еще не очень?)
или центос?

Re: Оптимизация производительности сервера

Posted: Thu Dec 05, 2013 8:08 pm
by skid
Сейчас панель одинаково хорошо работает, как на RHEL системах так и на на Debian-like дистрибутивах. Абстрактно говорить о производительности сложно, слишком иного параметров имеют значение. Впрочем не исключена и разница в сборках ПО для ubuntu, мы сравнительные тесты не проводили.

Re: Оптимизация производительности сервера

Posted: Thu Dec 05, 2013 9:03 pm
by alexandrnew
я только что установил на такую же виртуалку на убунту - немного, процентов на 5 быстрее. но это такое.
меня больше волнует, почему на убунте установленной с апачем нгинксом и тд - раза в 2,5-3 быстрее, судя по данному тупому тесту...

Code: Select all

ab -c 50 -n 5000 ****2.5/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking ******2.5 (be patient)
Completed 500 requests
Completed 1000 requests
Completed 1500 requests
Completed 2000 requests
Completed 2500 requests
Completed 3000 requests
Completed 3500 requests
Completed 4000 requests
Completed 4500 requests
Completed 5000 requests
Finished 5000 requests


Server Software:        nginx/1.4.3
Server Hostname:        *******2.5
Server Port:            80

Document Path:          /
Document Length:        184 bytes

Concurrency Level:      50
Time taken for tests:   0.799 seconds
Complete requests:      5000
Failed requests:        0
Write errors:           0
Non-2xx responses:      5000
Total transferred:      1865000 bytes
HTML transferred:       920000 bytes
Requests per second:    6257.99 [#/sec] (mean)
Time per request:       7.990 [ms] (mean)
Time per request:       0.160 [ms] (mean, across all concurrent requests)
Transfer rate:          2279.52 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    4   1.2      4       6
Processing:     1    4   1.4      4       9
Waiting:        0    2   1.3      2       6
Total:          4    8   1.4      8      13

Percentage of the requests served within a certain time (ms)
  50%      8
  66%      8
  75%      9
  80%      9
  90%     10
  95%     10
  98%     11
  99%     11
 100%     13 (longest request)
root@website:~#

Code: Select all

 ab -c 50 -n 5000 *****1.20/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking *****1.20 (be patient)
Completed 500 requests
Completed 1000 requests
Completed 1500 requests
Completed 2000 requests
Completed 2500 requests
Completed 3000 requests
Completed 3500 requests
Completed 4000 requests
Completed 4500 requests
Completed 5000 requests
Finished 5000 requests


Server Software:        nginx
Server Hostname:        ******.20
Server Port:            80

Document Path:          /
Document Length:        1051 bytes

Concurrency Level:      50
Time taken for tests:   3.055 seconds
Complete requests:      5000
Failed requests:        0
Write errors:           0
Total transferred:      6525000 bytes
HTML transferred:       5255000 bytes
Requests per second:    1636.68 [#/sec] (mean)
Time per request:       30.550 [ms] (mean)
Time per request:       0.611 [ms] (mean, across all concurrent requests)
Transfer rate:          2085.81 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.2      0      13
Processing:     2   30   4.2     31      60
Waiting:        1   30   4.2     31      60
Total:         11   30   3.8     31      60

Percentage of the requests served within a certain time (ms)
  50%     31
  66%     31
  75%     32
  80%     32
  90%     33
  95%     35
  98%     40
  99%     45
 100%     60 (longest request)
[root@crms ~]#

Code: Select all

 ab -c 50 -n 5000 ****15/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking *****1.15 (be patient)
Completed 500 requests
Completed 1000 requests
Completed 1500 requests
Completed 2000 requests
Completed 2500 requests
Completed 3000 requests
Completed 3500 requests
Completed 4000 requests
Completed 4500 requests
Completed 5000 requests
Finished 5000 requests


Server Software:        nginx
Server Hostname:        *******.15
Server Port:            80

Document Path:          /
Document Length:        1051 bytes

Concurrency Level:      50
Time taken for tests:   2.231 seconds
Complete requests:      5000
Failed requests:        0
Write errors:           0
Total transferred:      6560000 bytes
HTML transferred:       5255000 bytes
Requests per second:    2241.37 [#/sec] (mean)
Time per request:       22.308 [ms] (mean)
Time per request:       0.446 [ms] (mean, across all concurrent requests)
Transfer rate:          2871.75 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.8      0       9
Processing:     2   22   2.5     21      34
Waiting:        2   22   2.5     21      34
Total:         11   22   2.3     21      34

Percentage of the requests served within a certain time (ms)
  50%     21
  66%     22
  75%     22
  80%     25
  90%     26
  95%     27
  98%     27
  99%     28
 100%     34 (longest request)
root@crm:~#
1 убунта, с нгиксом, апачем. ставил правда не я...

2 центос с панелью
3 убунта с панелью

вот хочу что бы было как на 1.

Re: Оптимизация производительности сервера

Posted: Thu Dec 05, 2013 9:10 pm
by skid
Для тестов нужно использовать одинаковые данные. Лучше всего установить чистый wordpress на все три сервера и проверить разнку. Что касается специфичных настроек, то их можно перенести с первого сервера на новый и если дело в них, то все будет работать так же быстро.

Re: Оптимизация производительности сервера

Posted: Fri Dec 06, 2013 12:43 am
by alexandrnew
skid wrote:Для тестов нужно использовать одинаковые данные. Лучше всего установить чистый wordpress на все три сервера и проверить разнку. Что касается специфичных настроек, то их можно перенести с первого сервера на новый и если дело в них, то все будет работать так же быстро.
а что порекомендуете проверить\перенести из настроек? какие сервисы?
я сравнил конфиги на том, "шустром" сервере с дефолтными, при установке пакетов, сравнивал пхпюини, апач, мускул, нгинкс - ничего там не тюнилось, только прописаны сайты.....

Re: Оптимизация производительности сервера

Posted: Fri Dec 06, 2013 7:43 am
by skid
Возможно там тюнились параметры всей системы. Если так, то настройки будут видны в /etc/sysctl.conf. Помимо этого, все важное вы уже перечислили.

Re: Оптимизация производительности сервера

Posted: Fri Dec 06, 2013 9:55 am
by alexandrnew
Смотреть глобальные конфиги перечисленных мною сервисов, по стандартным путям?