Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
S
Stable Diffusion Webui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
novelai-storage
Stable Diffusion Webui
Commits
2ba0277b
Commit
2ba0277b
authored
Feb 10, 2024
by
analysisjp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: prepare_tcmalloc (Fixed memory leak issue in Ubuntu 22.04 or modern linux environment)
parent
d69a7944
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
18 deletions
+36
-18
webui.sh
webui.sh
+36
-18
No files found.
webui.sh
View file @
2ba0277b
...
...
@@ -226,30 +226,48 @@ fi
# Try using TCMalloc on Linux
prepare_tcmalloc
()
{
if
[[
"
${
OSTYPE
}
"
==
"linux"
*
]]
&&
[[
-z
"
${
NO_TCMALLOC
}
"
]]
&&
[[
-z
"
${
LD_PRELOAD
}
"
]]
;
then
# check glibc version
LIBC_LIB
=
"
$(
PATH
=
/usr/sbin:
$PATH
ldconfig
-p
|
grep
-P
"libc.so.6"
|
head
-n
1
)
"
LIBC_INFO
=
$(
echo
${
LIBC_LIB
}
|
awk
'{print $NF}'
)
LIBC_VER
=
$(
echo
$(
${
LIBC_INFO
}
|
awk
'NR==1 {print $NF}'
)
|
grep
-oP
'\d+\.\d+'
)
echo
"glibc version is
$LIBC_VER
"
libc_vernum
=
$(
expr
$LIBC_VER
)
# Since 2.34 libpthread is integrated into libc.so
libc_v234
=
2.34
# Define Tcmalloc Libs arrays
TCMALLOC_LIBS
=(
"libtcmalloc(_minimal|)
\.
so
\.\d
"
"libtcmalloc
\.
so
\.\d
"
)
# Traversal array
for
lib
in
"
${
TCMALLOC_LIBS
[@]
}
"
do
#Determine which type of tcmalloc library the library supports
TCMALLOC
=
"
$(
PATH
=
/usr/sbin:
$PATH
ldconfig
-p
|
grep
-P
$lib
|
head
-n
1
)
"
TC_INFO
=(
${
TCMALLOC
//=>/
}
)
if
[[
!
-z
"
${
TC_INFO
}
"
]]
;
then
echo
"Using TCMalloc:
${
TC_INFO
}
"
#Determine if the library is linked to libptthread and resolve undefined symbol: ptthread_Key_Create
if
ldd
${
TC_INFO
[2]
}
|
grep
-q
'libpthread'
;
then
echo
"
$TC_INFO
is linked with libpthread,execute LD_PRELOAD=
${
TC_INFO
}
"
export
LD_PRELOAD
=
"
${
TC_INFO
}
"
break
else
echo
"
$TC_INFO
is not linked with libpthreadand will trigger undefined symbol: ptthread_Key_Create error"
fi
else
printf
"
\e
[1m
\e
[31mCannot locate TCMalloc (improves CPU memory usage)
\e
[0m
\n
"
fi
# Determine which type of tcmalloc library the library supports
TCMALLOC
=
"
$(
PATH
=
/usr/sbin:
$PATH
ldconfig
-p
|
grep
-P
$lib
|
head
-n
1
)
"
TC_INFO
=(
${
TCMALLOC
//=>/
}
)
if
[[
!
-z
"
${
TC_INFO
}
"
]]
;
then
echo
"Check TCMalloc:
${
TC_INFO
}
"
# Determine if the library is linked to libptthread and resolve undefined symbol: ptthread_key_create
if
[
$(
echo
"
$libc_vernum
<
$libc_v234
"
| bc
)
-eq
1
]
;
then
# glibc < 2.33 pthread_key_create into libpthead.so. check linking libpthread.so...
if
ldd
${
TC_INFO
[2]
}
|
grep
-q
'libpthread'
;
then
echo
"
$TC_INFO
is linked with libpthread,execute LD_PRELOAD=
${
TC_INFO
[2]
}
"
# set fullpath LD_PRELOAD (To be on the safe side)
export
LD_PRELOAD
=
"
${
TC_INFO
[2]
}
"
break
else
echo
"
$TC_INFO
is not linked with libpthread will trigger undefined symbol: pthread_Key_create error"
fi
else
# Version 2.34 of libc.so (glibc) includes the pthead library IN GLIBC. (USE ubuntu 22.04 and modern linux system and WSL)
# libc.so(glibc) is linked with a library that works in ALMOST ALL Linux userlands. SO NO CHECK!
echo
"
$TC_INFO
is linked with libc.so,execute LD_PRELOAD=
${
TC_INFO
[2]
}
"
# set fullpath LD_PRELOAD (To be on the safe side)
export
LD_PRELOAD
=
"
${
TC_INFO
[2]
}
"
break
fi
fi
done
if
[[
-z
"
${
LD_PRELOAD
}
"
]]
;
then
printf
"
\e
[1m
\e
[31mCannot locate TCMalloc. Do you have tcmalloc or gperftools installed on your system? (improves CPU memory usage)
\e
[0m
\n
"
fi
fi
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment