Мне нужна помощь в попытке выяснить, что может объяснить, что Centos 7 медленнее при доступе к файлу, чем Centos 6. Разница составляет примерно 17%.
Вот простой тест:
[root@test-centos6 shm]# time for i in $(seq 0 50000); do stat file > /dev/null; done
real 0m42.283s
user 0m2.465s
sys 0m4.434s
[root@test-centos6 shm]# time for i in $(seq 0 50000); do stat file > /dev/null; done
real 0m41.890s
user 0m2.442s
sys 0m4.341s
[root@test-centos6 shm]# time for i in $(seq 0 50000); do stat file > /dev/null; done
real 0m41.795s
user 0m2.383s
sys 0m4.310s
----
[root@test-centos7 shm]# time for i in $(seq 0 50000); do stat file > /dev/null; done
real 0m49.081s
user 0m16.306s
sys 0m32.639s
[root@test-centos7 shm]# time for i in $(seq 0 50000); do stat file > /dev/null; done
real 0m48.379s
user 0m16.034s
sys 0m32.191s
[root@test-centos7 shm]# time for i in $(seq 0 50000); do stat file > /dev/null; done
real 0m48.054s
user 0m15.680s
sys 0m32.245s
strace, похоже, подтверждает, что C7 выполняет больше операций на статистику, чем C6.
[root@test-centos6 shm]# strace stat file 2>&1 | wc -l
145
[root@test-centos7 shm]# strace stat file 2>&1 | wc -l
168
Кто-нибудь знает, как уменьшить количество операций для C7, чтобы perfs были более встроены в C6?
Спасибо,
//РЕДАКТИРОВАТЬ:
Я поместил оба файла в / dev / shm, чтобы устранить возможную разницу между xfs / ext4. Это 2 идентичные виртуальные машины на одном хосте ESX, только с другой ОС. (но я наблюдал такую же разницу и на аппаратных коробках, просто использовал эти виртуальные машины для текущего тестирования)
Strace C6: https://paste.fedoraproject.org/paste/oCSUZqKgcoNLJubjeNbo9V5M1UNdIGYhyRLivL9gydE= Strace C7: https://paste.fedoraproject.org/paste/PvTXvxxvS~2UZ9LuuSVAA15M1UNdIGYhyRLivL9gydE=
Я бы предположил, что новый C7 будет иметь лучшие характеристики в исходной форме, а не хуже.
[root@test-centos6 shm]# uname -r
2.6.32-642.el6.x86_64
[root@test-centos6 shm]# getenforce
Disabled
[root@test-centos7 shm]# uname -r
3.10.0-514.6.1.el7.x86_64
[root@test-centos7 shm]# getenforce
Disabled
В stat
Утилита различается между CentOS6 и CentOS7. Для подтверждения попробуйте выдать stat --version
на обеих машинах.
Новый strace
версия, пожалуй, более сложная. Например, из вашего strace
вывод, похоже, что CentOS7 strace
карты libpcre.so.1
(библиотека регулярных выражений), а CentOS6 strace
не.
В любом случае, это, по сути, стандартный тест: чтобы по-настоящему оценить скорость доступа к файлам / манипуляций, вы должны использовать такие инструменты, как fs_mark
или, что еще лучше, какой-нибудь реальный тест (например, распаковать большой архив).
Это совершенно разные операционные системы с разными ядрами, скомпилированными значениями по умолчанию, файловыми системами, планировщиками и возможностями настройки.
Как вы думаете, почему они должны действовать одинаково? Придется многое учесть, поэтому на этот вопрос будет сложно ответить в его нынешней форме.